【问题标题】:Aspnet Entity Data Model wont work as expectedAsp Net Entity Data Model 无法按预期工作
【发布时间】:2016-06-10 07:42:57
【问题描述】:

首先,我对使用 C#、ASPNET 和 MS SQL 进行开发非常陌生,所以我可能只是在这里遗漏了一个简单的点,或者误解了一个基本概念,所以请耐心等待我 :)

我正在使用带有 .NET Framework 4 和 MVC2 的 Visual Studio Web Developer 2010 Express(必须使用此特定版本)。我还有 SQL Management Studio 10.5,我在其中创建了一个简单的表

现在我想将其用作实体模型,因此我在 Visual Studio 中创建了一个并添加了所有表(包括 ASPNET 用户表)和存储过程。

问题是结果...

我希望能够从 Kunden(createdBy, modifiedBy) 导航到 ASPNET 用户表,就像我可以从“Kunden”表访问“Ge​​schenk”一样。出于同样的原因,我认为我将在这里拥有一个属性,而不是其中的 2 个。当然我可以重命名导航属性,但我想知道这是什么原因以及在这种情况下使用 aspnetusers 的正确方法是什么?

【问题讨论】:

  • 你的期望是错误的。 EF 为每个外键引用构建一个唯一的导航属性。其中一个属性是创建 Kunden 记录的用户记录的映射,另一个是最后修改它的用户的用户记录的映射。
  • 我还强烈建议更新到Community edition,因为此时不支持您使用的内容。
  • @TiesonT。所以 Navigation 属性不是为它在 sql 表中的同一个对象创建的,而是为它“链接到”的对象创建的?
  • 或者这仅适用于 m:n 关系?那么Property的Name是如何确定的或者为什么不使用createdBy和modifiedBy作为Navigation Property呢?
  • 第一个是肯定的,我不确定你说的第二个是什么意思。导航属性或多或少以其链接到的表/集命名。可能应该读this

标签: c# entity-framework asp.net-mvc-2 asp.net-identity sql-server-express


【解决方案1】:

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

如果只生成一个关联,您希望aspnet_Users 关联检索哪个用户?如果您期望两者兼而有之,那么您将如何区分两者?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-03
    • 1970-01-01
    • 2017-08-20
    • 2018-04-24
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 2020-11-14
    相关资源
    最近更新 更多