加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Code First实体框架和外键

发布时间:2020-12-16 01:58:24 所属栏目:百科 来源:网络整理
导读:想象一下,我有一个由代码创建的数据库,看起来像这样. Movie (table)ID int PKMoveiName nvarchar(100)Actor (table)ID int PKActorName nvarchar(100)Movie_ID int FK 这些是我会使用的模型,显然不完全是这样,但你会明白我的观点. class Movie{ int ID{get;s
想象一下,我有一个由代码创建的数据库,看起来像这样.

Movie (table)
ID int PK
MoveiName nvarchar(100)

Actor (table)
ID int PK
ActorName nvarchar(100)
Movie_ID int FK

这些是我会使用的模型,显然不完全是这样,但你会明白我的观点.

class Movie
{  
    int ID{get;set;}
    string MovieName {get;set;}
    List<Actor> Actors {get;set}
}

class Actor
{
    int ID{get;set}
    string Actorname{get;set}
    Movie Movie{get;set;}
    int Move_ID{get;set;}
}

数据库首先使我能够从一个actor查询电影,但也允许我设置actor的forgien键属性来更新数据库.我不能在代码中首先执行此操作,因为外键在模型中不仅仅是对象.我不想获取Movie对象并设置属性,如果我知道我的电影的ID我宁愿只设置外键而没有调用来获取电影.

合理?大声笑

我想使用codefirst和实体迁移,但我想要与数据库相同的能力首先在对象上设置外键.

干杯的帮助:-D

解决方法

首先将代码更改为此

public class Movie
{  
   int ID{ get; set; }
   string MovieName {get; set; }
   List<Actor> Actors {get; set; }
}

 public class Actor
 {
    int ID{get;set}
    string ActorName{ get; set }
    Movie Movie{ get; set; }
    int MovieID{ get; set; }
 }

到convention EF将知道MovieID是Movie的外键

然后将Actor代码更改为:

public class Actor
{
    int ID{get;set}
    string ActorName{ get; set; }
    Movie Movies{ get; set; }
}

演员出现在很多电影中.电影有很多演员……

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读