星空网 > 软件开发 > ASP.net

Entity Framework一对多关系添加数据的两种方式

 

当使用Entity Framework添加一对多关系数据的时候,通常先添加一的数据,然后再添加多的数据。类似这样:

 

//添加一的数据var category = new Category{Name="类别1"};category = context.Categories.Add(category);//添加多的数据for(var i = 0; i < 2; i++){  context.Products.Add(new Product{    Name = "产品" + i,    CategoryId = category.Id});}context.SaveChanges();

 

以上,我们对Category和Product分别进行了Add操作,然后统一SaveChanges。是否可以对Category的Products属性赋值,只对Catetegory进行Add,然后SaveChanges呢?

也就是按如下:

 

var category = new Category{Name="类别1"};for(var i = 0; i < 2; i++){  category.Products.Add(new Product{    Name="产品" + i,    Category = category  });}context.Categories.Add(category);context.SaveChanges();

 

那就验证下。

来两个一对多关系的领域模型。

 

  public class Product  {    public int Id { get; set; }    public string Name { get; set; }    public int CategoryId { get; set; }    public virtual Category Category { get; set; }  }  public class Category  {    public int Id { get; set; }    public string Name { get; set; }    public virtual ICollection<Product> Products { get; set; }    public Category()    {      Products = new List<Product>();    }  }

 

创建上下文:

 

  public class EFTestContext: DbContext  {    public EFTestContext() : base("conn")    {    }    public DbSet<Category> Categories { get; set; }   }

 

配置连接字符串:

 

 <connectionStrings>  <add name="conn"    connectionString="Data Source=.;User=YourUsername;Password=YourPassword;Initial Catalog=EFTest;Integrated Security=True"    providerName="System.Data.SqlClient"/> </connectionStrings> 

 

客户端程序:

 

    static void Main(string[] args)    {      using (var context = new EFTestContext())      {        var category = new Category        {          Name = "产品类别3"        };                for(var i=0;i<2;i++)        {          category.Products.Add(new Product {            Name = "产品" + i,            //Category = category            CategoryId = category.Id          });        }        context.Categories.Add(category);        context.SaveChanges();      }      Console.WriteLine("运行结束");      Console.ReadKey();    }

 

运行成功。



总结:当使用Entity Framework添加一对多关系数据的时候,我们通过给一的集合属性赋值,只context.代表一的表s.Add(代表一的实例),也同样可以在数据库中为代表多的那个表添加数据。并且,代表多的那个DbSet不设置也行。

 




原标题:Entity Framework一对多关系添加数据的两种方式

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

成都fba头程物流:https://www.goluckyvip.com/tag/29316.html
成都到海南专线:https://www.goluckyvip.com/tag/29317.html
成都到秦皇岛专线:https://www.goluckyvip.com/tag/29318.html
成都电商产业园:https://www.goluckyvip.com/tag/29319.html
中美通话:https://www.goluckyvip.com/tag/2932.html
成都电商培训班:https://www.goluckyvip.com/tag/29320.html
九月初新疆旅游服装搭配(新疆游玩必备衣服清单):https://www.vstour.cn/a/408257.html
黄果树瀑布景区景点 - 黄果树瀑布景区景点分布图:https://www.vstour.cn/a/408258.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流