我在SQL Server Management Studio中的数据库如下所示:
在EF中它看起来像这样:
所以基本上,当我添加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; }
}
类,因为那只是一个导航属性。
谢谢!
答案 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();