【发布时间】:2017-07-05 02:31:46
【问题描述】:
我正在尝试映射到现有数据库。当我使用下面的代码并为给定实体提取结果列表时,我得到了我期望的结果。
但是,当我尝试将 .Include(x => x.Book) 添加到针对 UserBook 表的简单列表查询中时,我的结果集返回空。
[Table("User")]
public class User
{
[Key]
public Guid UserId { get; set; }
public string UserName{ get; set; }
// Reference
public ICollection<UserBook> UserBooks { get; set; }
}
[Table("Book")]
public class Book
{
[Key]
public Guid BookId { get; set; }
public string BookName{ get; set; }
// Reference
public ICollection<UserBook> UserBooks { get; set; }
}
[Table("UserBook")]
public class UserBook
{
public Guid UserId { get; set; }
public Guid BookId { get; set; }
public int PermissionMask { get; set; }
public bool Deleted { get; set; }
// Ref
public User User { get; set; }
public Book Book { get; set; }
}
我正在按照此处列出的说明进行操作:http://www.learnentityframeworkcore.com/configuration/many-to-many-relationship-configuration
为了更好地说明问题,以下是我正在使用的查询:
// Returns 1,000+ rows.
_context.UserBooks.ToList();
// Returns 1 row
_context.UserBooks
.Where(x => x.UserId == "SomeGuid")
.ToList();
// Returns 0 rows
_context.UserBooks
.Include(x => x.Book)
.Where(x => x.UserId == "SomeGuid")
.ToList();
// Returns 0 rows
_context.UserBooks.Include(x => x.Book).ToList();
【问题讨论】:
-
my UserBook table uses a Primary Key of UserId,我想知道如果它是多对多的关系是如何工作的 -
我正在偏离提供给我的图表;仔细检查 SSMS,我发现它正在使用复合键。应该先检查来源,那是我的错。更新了问题以反映这一点,但最初的问题仍然存在。
-
你能告诉我们失败的查询吗?
-
添加示例:+1:
-
下一步是调查失败语句的执行SQL。
标签: c# entity-framework entity-framework-core