0

首先,我真的很熟悉用C#,ASPNET和MS SQL进行开发,所以我可能只是在这里错过了一个简单的观点或者错过了一个基本的概念,所以请耐心等待我:)Aspnet实体数据模型不会像预期的那样工作

我使用Visual Studio Web Deveoloper 2010 Express与.NET Framework 4和MVC2(必须使用此特定版本)。我也有SQL管理工作室10.5,我创建了一个简单的表enter image description here

现在我想用它作为实体模型,所以我在Visual Studio中创建了一个,并添加了所有表(包括ASPNET用户表)和存储过程。 enter image description here

问题是结果...

enter image description here

我期望能够从Kunden(createdBy,modifiedBy)导航到ASPNET用户表等我可以从访问“Ge​​schenk” “昆登”表。我以为我会在这里有一个单一的财产,而不是出于同样的原因他们2。当然,我可以重命名导航属性,但我想知道这是什么原因,以及在这种情况下使用aspnetusers的正确方法是什么?

+1

你的期望是错的。 EF为每个外键引用构建一个唯一的导航属性。其中一个属性是用于创建Kunden记录的用户记录的映射,另一个是用于修改它的最后一个用户的用户记录的映射。 –

+0

我也强烈建议更新到[社区版](https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx),因为你使用的不是在这一点上受到支持。 –

+0

@TiesonT。所以导航属性不是为它在sql表中的同一个对象而是为它“链接到”的对象创建的? –

回答

1

Kunden有2个FK对aspnet_Users表的引用。一个对应于createdBy列,另一个对应于modifiedBy列。因此,为每个导航属性生成。想象一下,不同的用户已经创建并修改了一个Kunden

如果只生成一个关联,您希望aspnet_Users关联检索哪个用户?如果你期待收集这两者,那你怎么区分这两者呢?

相关问题