C# “如何从数据库访问内容”;不使用主键“;
ASP网络核心-使用EF核心 表:C# “如何从数据库访问内容”;不使用主键“;,c#,entity-framework,C#,Entity Framework,ASP网络核心-使用EF核心 表: UserBooksId-主键 UserId-来自另一个表的UserId BookId—来自另一个表的BookId BookToBuy-我保存内容的地方 NrBooksOrdered—订购的图书数量 因此,我不知道如何使用UserId->BookToBuy和NrBooksOrdered,甚至使用具有此UserId的所有主键来访问此表的内容 主键是唯一的,这对我没有多大帮助,因为在数据库中,UserId和bookid可以在数据库中多次出现 例如: UserBook
/*b是每本书的参考,因此您可以通过bool表达式对其进行过滤*/
var booksQuery=dbcontext.BooksTable.Where(b=>b.UserId==1&&b.BookId==2);
/*书籍的类型为IQueryable,因此无法从数据库中检索*/
/*然而。为此,您可以使用“.ToList()”或“.AsEnumerable()”(即*/
/*在需要迭代一次结果的用例中更快)*/
var booksFromDb=booksQuery.AsEnumerable();
有关如何使用EF Core查询数据的详细说明,请始终参阅:
TableName.Where(z=>conditionhere)
谢谢。现在它起作用了。我将在linq和Queries上做我的研究还有一件事要补充,我不认为使用UserId我可以获得表的对象,每个主键。我一直认为只有使用主键才能实现这一点。大多数Linq查询直到AsEnumerable()
或ToString()
将被转换为SQL并在SQL Server上执行,以获得更好的性能。@SilviuM不客气。还要记住,如果要迭代结果或一次,请将AsEnumerable()
替换为ToString()