【问题标题】:Linking two tables in an MVC 3 project using the Entity Framework?使用实体框架链接 MVC 3 项目中的两个表?
【发布时间】:2012-05-16 20:39:35
【问题描述】:

(运行 EntityFramework 4.1) 我有一个 ASP .NET MVC 3 项目,该项目有一个包含两个数据库表的数据库。

表达数据库表的模型:

public class MyDetails
{
    public int DetailsID {get;set;}
    public string Description {get;set;}
    public int 
    public CarID {get;set;}
    public virtual Cars Cars {get;set;}

    public PreviousCarID {get;set;}

}

public class Cars
{
    public int CarsID {get;set;}
    public string CarsName {get;set;}


}

Entity Framework 将很好地关联 MyDetails.CarsID 和 Cars.CarsID,以便我可以提取 CarsName。 问题是我不确定如何将 PreviousCarID 与 Cars 表关联起来。

我尝试过的(导致实体框架错误):

public PreviousCarID{get;set;}
[ForeignKey("PreviousCarID")]
public virtual Cars Cars2 {get;set;}

【问题讨论】:

  • MyDetails 课程搞砸了。可以更新吗?

标签: asp.net-mvc asp.net-mvc-3 entity-framework-4 model


【解决方案1】:

我会将 Cars 重命名为 Car,并将 CarsID 更改为 CarID。然后在您的 DbContext 中将 DbSet 保留为 Car 类型,但命名为 Cars。

其次,解决您的具体问题(使用我上面的建议)

public class MyDetails 
{ 
    public int DetailsID {get;set;} 
    public string Description {get;set;} 
    public int CarID {get;set;} 
    public int PreviousCarID {get;set;}

    public virtual Car Car {get;set;} 
    public virtual Car PreviousCar {get;set;} 
} 

public class Car 
{ 
    public int CarID {get;set;} 
    public string CarName {get;set;} 
} 

您没有说明您使用的是代码优先、模型优先还是数据库优先。我将假设数据库优先。如果是这种情况,那么您需要确保 CarID 和 PreviousCarID 都是 Car 表的外键。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-16
    • 1970-01-01
    • 1970-01-01
    • 2017-09-14
    相关资源
    最近更新 更多