Dapper没有反序列化nvarchar类型

问题描述 投票:0回答:1

基本上,我有一个播放列表对象:

public class Playlist
{
    public int PlaylistID { get; set; }
    public string PlaylistName { get; set; }
    public string PlaylistUri { get; set; }
    public int FestivalID { get; set; }
}

当我尝试从数据库中读取数据时,将填充PlaylistID和FestivalID数据,但PlaylistName / PlaylistUri不会。我检查了数据类型:

COLUMN_NAME DATA_TYPE
PlaylistID  int
PlaylistName nvarchar
PlaylistUri nvarchar
FestivalID  int

这里也是获取数据的代码(非常多的alpha,准备好后会清理)

public class SpotifyApiData
{
    private string _connectionString;
    private string ALL_DATA = "SELECT * FROM EdgeCases; SELECT [PlaylistID] ,[PlaylistName],[PlaylistID] FROM Playlist; SELECT * FROM Festival;";
    public string ConnectionString { get => _connectionString; set => _connectionString = value; }


    public SpotifyApiData()
    {
        _connectionString = ConfigurationHelper.GetConnectionString();
    }

    public void GetRefreshablePlaylist()
    {

    }

    public PlaylistCollectionData GetAllData()
    {
        using (var connection = new SqlConnection(ConnectionString))
        {
            using (var multi = connection.QueryMultiple(ALL_DATA))
            {

                return new PlaylistCollectionData()
                {
                    EdgeCases = multi.Read<EdgeCases>().ToList(),
                    Festivals = multi.Read<Festival>().ToList(),
                    Playlists = multi.Read<Playlist>().ToList()
                };
            }
        }
    }
}
c# dapper
1个回答
1
投票

您正在播放PlayList之前的节日。反转这两行以匹配选择查询的顺序

return new PlaylistCollectionData()
{
    EdgeCases = multi.Read<EdgeCases>().ToList(),
    Playlists = multi.Read<Playlist>().ToList(),
    Festivals = multi.Read<Festival>().ToList()
};

此外,播放列表的选择似乎是不完整的,它应该是

 SELECT [PlaylistID],[PlaylistName],[PlaylistUri],[FestivalID] FROM Playlist;
© www.soinside.com 2019 - 2024. All rights reserved.