实体框架中的类似列关系



我在c#winforms上使用实体框架4。

我有一个带有2个表的SQL Server数据库:

Users表:

UserId (int) (PK)
UserName

Products表:

ProductId (int)(PK)
ProductTitle
UserId1 (int) (foreign key referencing `UserId` in `Users` table)
UserId2 (int) (foreign key referencing `UserId` in `Users` table)

我正在使用实体框架(包括模型中的外键列)在我的C#项目中建模SQL Server数据库。

然后我获得了此代码的记录:

Entities dbEnteties = new Entities();
dbEnteties.ContextOptions.LazyLoadingEnabled = false;
var dbe = dbEnteties.Products.Include("Users");
var result = dbe.ToList();

当我从数据库中获取记录时,我看到UserId1字段具有数据,但UserId2字段是Null

我的C#代码怎么了?我该如何解决这个问题?!

,您可以在产品表中有两个指向用户表的外国键。我一直这样做,您这样做的原因很好。

由于您已经关闭了懒惰的加载,因此如果您希望查询自动加载它们,则需要明确"包括"导航属性。您将不得不弄清楚实体框架自动为您创建的导航属性的名称是什么。我假设您正在使用"数据库第一"模型。如果是这样,请双击您的.EDMX文件,然后查看产品表。您应该在那里看到一个称为"导航属性"的部分。它们可能被称为"用户"one_answers"用户1"。如果是这种情况,那么您需要执行以下操作。由于表之间有两个单独的关系,因此您需要两个单独的"。"语句:

            dbEnteties.Products.Include(product => product.User);
            dbEnteties.Products.Include(product => product.User1);

(请确保在文件的顶部使用System.Data.Entity; 使用,否则lambda语法将不起作用。)

相关内容

  • 没有找到相关文章

最新更新