C# 关于EFCodeFirst中关系的新手
以下代码之间的区别是什么C# 关于EFCodeFirst中关系的新手,c#,.net,ef-code-first,entity-framework-5,C#,.net,Ef Code First,Entity Framework 5,以下代码之间的区别是什么 public class Album { public int Id { get; set; } public string Title { get; set; } public List<Gener> Gener { get; set; } } public class Gener { public int Id { get; set; } public string Name { get; set; } }
public class Album
{
public int Id { get; set; }
public string Title { get; set; }
public List<Gener> Gener { get; set; }
}
public class Gener
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Albumcontext:DbContext
{
public DbSet<Album> Albums { get; set; }
public DbSet<Gener> Geners { get; set; }
}
公共类相册
{
公共int Id{get;set;}
公共字符串标题{get;set;}
公共列表生成器{get;set;}
}
公共类生成器
{
公共int Id{get;set;}
公共字符串名称{get;set;}
}
公共类Albumcontext:DbContext
{
公共数据库集相册{get;set;}
公共数据库集生成器{get;set;}
}
公共类相册
{
公共int Id{get;set;}
公共字符串标题{get;set;}
公共Gener Gener{get;set;}
}
公共类生成器
{
公共int Id{get;set;}
公共字符串名称{get;set;}
}
公共类Albumcontext:DbContext
{
公共数据库集相册{get;set;}
公共数据库集生成器{get;set;}
}
我知道关系2实体必须使用代码2,但如何使用列表或集合?抱歉我的英语不好第一个创建关系“一个
专辑
可以有多个流派
”,第二个创建“一个专辑
只能有一个流派
,但一个流派
可能与多个专辑
”链接
看看你的例子,你会想要有多对多的关系,
Album
可能有一个或多个Genre
,Genre
可能与一个或多个Albums
在第一个例子中,Album
和Gener
之间有多对一的关系。由于每个genr
仅链接到一个Album
,genr
获取Album
的外键
在第二种情况下,它只是一对一的关系,在
Album
模型中有一个对Gener
对象的引用,因此Album
获取Gener
的外键,在Album
类的第一个块中创建一个属性Gener
,这是genr
对象的列表-这意味着您希望一个Album
包含多个genr
:
public List<Gener> Gener { get; set; }
public Gener Gener { get; set; }
顺便说一句,你的类名有一个拼写错误——我想你想要的是体裁,而不是泛型
编辑:
要了解有关在实体框架中定义关系的更多信息,请选中。这两个选项都没有意义,唱片集/流派是一种N:N类型的关系(流派可以链接到多张唱片,一张唱片可以跨越更多的流派)@MeysamSavameri正如Alex指出的那样,唱片集流派关系是多对多的-一张唱片可以定义多个流派(你知道,很难说一个乐队有时只演奏一种风格)一种风格当然可以有很多专辑。检查我的最新答案,我在那里添加了关于关系的文章链接。
public Gener Gener { get; set; }