首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EF Code-First:多对多单向导航

EF Code-First:多对多单向导航
EN

Stack Overflow用户
提问于 2012-06-07 23:26:53
回答 1查看 612关注 0票数 4

我正在尝试创建一个代码优先模型,其中一个人可以有许多喜欢的电影,但我不想在电影表中使用FK。

实现这一点的唯一方法是让EF在两个实体之间创建一个链接表,为此(afaik)我在Movies实体上创建了一个与Person相关的集合属性。

代码语言:javascript
复制
public class Person
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }

    public virtual IList<Movie> FavouriteMovies { get; set; }
}

public class Movie
{
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual IList<Person> People { get; set; } // I don't want this here :(
}

我想让电影看起来像这样。

代码语言:javascript
复制
public class Movie
{
    public int Id { get; set; }
    public string Name { get; set; }
}

但是在这样做的时候,EF不会创建一个链接表,它只会在Movies表中删除一个Person_Id FK列。

我不希望这种情况发生,因为电影不应该与人有任何关系,我可能想把它与其他东西联系起来。

那么我怎么才能既吃蛋糕又吃蛋糕呢?

EN

回答 1

Stack Overflow用户

发布于 2012-06-07 23:33:08

应该是这样的。你如何添加你的实体?下面是一个示例:

代码语言:javascript
复制
public class Character : BaseEntity
{
    public string Name { get; set; }
    public bool IsEvil { get; set; }
    public virtual ICollection<Videogame> Videogames { get; set; } 
}
public class Videogame : BaseEntity 
{
    public string Name { get; set; }
    public DateTime ReleasedDate { get; set; }
    public virtual ICollection<Character> Characters { get; set; }
    public Author Author { get; set; }
}

下面是添加记录的位置:

代码语言:javascript
复制
[Test]
public void CreateJoinTable()
{
    var character = new Character() {Name = "Wario", IsEvil = true};
    var videogame = new Videogame() {Name = "Super Mario Bros 20", ReleasedDate = DateTime.Now , Characters = new Collection<Character>()};
    videogame.Characters.Add(character);
    var context = new NerdContext();
    context.Add(videogame);
    context.SaveAllChanges();
}

以下是代码片段的出处:http://george2giga.com/2012/05/02/easy-join-tables-with-ef-code-first/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10934901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档