使用EF 6.0在关系表中创建行

时间:2013-11-25 21:13:29

标签: c# sql sql-server winforms entity-framework

我在SQL Server Management Studio中的数据库如下所示:

enter image description here

在EF中它看起来像这样:

enter image description here

所以基本上,当我添加Bokningar行时,我需要RumsBokningar表来包含Bokning_ID的{​​{1}}和房间的Bokningar 。这是我的代码:

Rum_ID

这会导致预订行被创建,但我也需要创建var model = new HotellEntities(); model.Bokningar.Add(new Bokningar { Antalpersoner = 2, Bokningsdatum = DateTime.Now, DatumFrån = dateTimeBokaFrån.Value, DatumTill = dateTimeBokaTill.Value, Namn = namnText.Text, }); model.SaveChanges(); 行...

RumsBokningar上课:

Bokningar

public partial class Bokningar { public Bokningar() { this.Rums = new HashSet<Rums>(); } public int Bokning_ID { get; set; } public string Namn { get; set; } public Nullable<System.DateTime> Bokningsdatum { get; set; } public Nullable<int> Antalpersoner { get; set; } public Nullable<System.DateTime> DatumFrån { get; set; } public Nullable<System.DateTime> DatumTill { get; set; } public virtual ICollection<Rums> Rums { get; set; } } 上课:

Rum

没有public partial class Rums { public Rums() { this.Bokningar = new HashSet<Bokningar>(); } [Browsable(false)] public int Rum_ID { get; set; } [Browsable(false)] public Nullable<bool> Husdjur { get; set; } public Nullable<int> Pris { get; set; } public Nullable<int> Nummer { get; set; } public Nullable<int> Antalpersoner { get; set; } [Browsable(false)] public virtual ICollection<Bokningar> Bokningar { get; set; } } 类,因为那只是一个导航属性。

谢谢!

1 个答案:

答案 0 :(得分:0)

对象中表示的多对多关系是具有另一个对象列表的对象。 (另一个对象也有第一个对象的列表)因此,当您创建Bokningar对象时,请使用Rums列表设置它的Rums集合。如下所示。

var bokningar new Bokningar
{
    Antalpersoner = 2,
    Bokningsdatum = DateTime.Now,
    DatumFrån = dateTimeBokaFrån.Value,
    DatumTill = dateTimeBokaTill.Value,
    Namn = namnText.Text,
    // Create your Rums here.
    Rums = new List<Rum>{ new Rum { Husdjur = true, ... } }                                      
});

现在将插入每个Rum对象的一行。

同样,单个Rum会保留Bokningar列表,如下所示

var rum = new Rum
{
    Husdjur = true,
    // ...
    Bokningar = new List<Bokningar>{ new Bokningar { Antalpersoner = 2, ... } }
};

model.SaveChanges();