无法将匿名类型隐式转换为 System.Collections.Generic.List
Cannot implicitly convert anonymous type to System.Collections.Generic.List
我正在尝试使用文档提供的稍微不同的结构向我的 Algolia 数据库添加一个对象,这样我就不必以字符串格式键入 Json 对象,但是我 运行 进入错误状态
Cannot implicitly convert anonymous type to
System.Collections.Generic.List
我看到 objs
变量中所有 key/values 的红色错误消息。
var songIndexHelper = HttpContext.Application.Get("SongIndexHelper") as IndexHelper<SongAlgoliaModel>;
List<JObject> objs = new List<JObject>();
objs = new
{
ApprovalFL = false,
FreeFL = album.FreeFL,
LicenseFL = album.LicenseFL,
AccountInfoID = album.AccountInfoID,
AlbumID = album.AlbumID,
SongID = song.SongID,
BPM = song.BPM,
AccountImageURL = album.AccountInfo.ImageURL,
AccountType = "Artist",
AlbumName = album.AlbumName,
Artist = artist,
FeaturedArtist = songArtistsList,
ImageURL = album.ImageURL,
iTunesURL = album.iTunesURL,
LabelName = album.LabelName,
Title = album.AlbumName,
UserID = album.AccountInfo.UserID,
UploadDate = song.UploadDate,
Duration = song.Duration,
objectID = song.SongID
};
songIndexHelper.AddObjects(objs);
这是对文档的引用:https://www.algolia.com/doc/api-reference/api-methods/add-objects/
编辑 替代方法但是,我的 LicenseFL 格式已关闭
List<JObject> objs = new List<JObject>();
objs.Add(JObject.Parse(@"{""ApprovalFL"":false, ""FreeFL"":" + album.FreeFL + ",""LicenseFL"":" +album.LicenseFL+ "}"));
songIndexHelper.AddObjects(objs);
不幸的是,Algolia docs 专注于 JObject
(和 JSON 字符串)的使用,这使得出错相当容易(例如无效的 JSON)。
您可能会考虑 approach:
var anon = new
{
ApprovalFL = true,
// Any other properties here
objectID = song.SongID
};
var obj = JObject.FromObject(anon);
var objs = new List<JObject> { obj };
songIndexHelper.AddObjects(objs);
现在,由于 anon
变量,您获得了一定程度的安全性(例如,不必担心无效的 JSON 字符串),而且与 Algolia API 的交互也很容易(根据 JObject
进行记录)。
我正在尝试使用文档提供的稍微不同的结构向我的 Algolia 数据库添加一个对象,这样我就不必以字符串格式键入 Json 对象,但是我 运行 进入错误状态
Cannot implicitly convert anonymous type to System.Collections.Generic.List
我看到 objs
变量中所有 key/values 的红色错误消息。
var songIndexHelper = HttpContext.Application.Get("SongIndexHelper") as IndexHelper<SongAlgoliaModel>;
List<JObject> objs = new List<JObject>();
objs = new
{
ApprovalFL = false,
FreeFL = album.FreeFL,
LicenseFL = album.LicenseFL,
AccountInfoID = album.AccountInfoID,
AlbumID = album.AlbumID,
SongID = song.SongID,
BPM = song.BPM,
AccountImageURL = album.AccountInfo.ImageURL,
AccountType = "Artist",
AlbumName = album.AlbumName,
Artist = artist,
FeaturedArtist = songArtistsList,
ImageURL = album.ImageURL,
iTunesURL = album.iTunesURL,
LabelName = album.LabelName,
Title = album.AlbumName,
UserID = album.AccountInfo.UserID,
UploadDate = song.UploadDate,
Duration = song.Duration,
objectID = song.SongID
};
songIndexHelper.AddObjects(objs);
这是对文档的引用:https://www.algolia.com/doc/api-reference/api-methods/add-objects/
编辑 替代方法但是,我的 LicenseFL 格式已关闭
List<JObject> objs = new List<JObject>();
objs.Add(JObject.Parse(@"{""ApprovalFL"":false, ""FreeFL"":" + album.FreeFL + ",""LicenseFL"":" +album.LicenseFL+ "}"));
songIndexHelper.AddObjects(objs);
不幸的是,Algolia docs 专注于 JObject
(和 JSON 字符串)的使用,这使得出错相当容易(例如无效的 JSON)。
您可能会考虑 approach:
var anon = new
{
ApprovalFL = true,
// Any other properties here
objectID = song.SongID
};
var obj = JObject.FromObject(anon);
var objs = new List<JObject> { obj };
songIndexHelper.AddObjects(objs);
现在,由于 anon
变量,您获得了一定程度的安全性(例如,不必担心无效的 JSON 字符串),而且与 Algolia API 的交互也很容易(根据 JObject
进行记录)。