将数据插入到多个1:1表中,其中主表具有自动编号

时间:2018-01-10 11:15:39

标签: sql-server asp.net-mvc entity-framework

我有多个表有1:1的关系

我需要将字段分隔到另一个表,因为其中一些很少使用。 “主”表的主键是自动编号(SQL Server中的标识)

现在我需要使用Entity Framework

从XML插入多个记录
XDocument xDoc = XDocument.Load(Server.MapPath("~/xml/xmlFile.xml"));
List<MainTable> allListings = xDoc.Descendants("listing")
    .Select(listing => new MainTable
    {
        listingCategory = listing.Element("listCategory").Value,
        listingStatus = listing.Element("listStatus").Value
    }).ToList();

    using (DemoEntities db = new DemoEntities())
    {
        foreach (var i in allListings)
        {
            db.Main.Add(i);
        }
        db.SaveChanges();
    }

以下代码是不可能的,因为我需要SQL Server自动将[id]字段分配给[MainTable]。

List<SecondTable> allListingsTableTwo = xDoc.Descendants("listing")
.Select(listing => new SecondTable
{
    anotherField = listing.Element("fieldfromXML").Value
}).ToList();

foreach (var i in allListingsTableTwo)
{
    db.SecondTable.Add(i);
}

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式获取主键:

db.Main.Add(i);
context.SaveChanges();

int id = i.Id; // Yes it's here