这样的事情可能吗?我收到以下错误。
db.SomeTable.Add(new SomeTable()
{
GuidId = Guid.NewGuid(),
Name = db.AnotherTable.Select(x => x.Name.Where(x.Id == localVariable.Id))
}
);
db.SaveChanges();
未知选择(?)系统数据实体DbSet
答案 0 :(得分:2)
Select
会返回IEnumerable
,而非单个记录。您需要添加.First()
调用才能抓取一条记录。实体框架认为您正在尝试将列表放入单个字段中。
此外,您对Where()
的使用不正确。 Where
也会返回IEnumerable
,并且只能应用于IEnumerable
。可以将其视为过滤列表的一种方式。
以下是我认为你要求做的事情:
Name = db.AnotherTable.First(x => x.id == someId).Name
答案 1 :(得分:1)
我认为你想要的是:
Name = db.AnotherTable
.First(x => x.Id == localVariable.Id)
.Name;
步骤如下:
AnotherTable
Id
等于localVariable.Id
Name
属性您还可以使用FirstOrDefault()
,Single()
和SingleOrDefault()
。