我正在编写MVC应用程序并希望使用搜索参数查询我的数据库并将所有结果放入列表中。现在我的代码尝试这个看起来像:
Character character = db.Characters.ToList().Find(User.Identity.GetUserId());
这是一个错误。有没有办法可以做到这一点?例如,将其分为两个陈述?我试过了
Character character = db.Characters.Find(User.Identity.GetUserId());
character = character.ToList();
但这也不起作用。
答案 0 :(得分:0)
使用扩展方法Find()
时,您必须确保在您的模型中,属性[Key]中的属性[Key]代表您的Id(表格中的主键)。
你可以尝试这样:
Character character = db.Characters.Find(User.Identity.GetUserId());
上面的行可以使用,但不是这一行character= character.ToList();
,因为您将字符声明为对象,并且您无法将其分配给您的案例中的对象列表Character
如果你想让它起作用,你可以这样做:
var myCharacters =db.Characters.Where(c=>c.someField=="someValue");
List<Character> myList = myCharacters.ToList();
希望它会有所帮助。