【问题标题】:Insert Record into Table Join with LINQ-SQL ASP.NET MVC使用 LINQ-SQL ASP.NET MVC 将记录插入表连接
【发布时间】:2012-10-13 13:41:26
【问题描述】:

您好,我知道如何使用 ASP.NET MVC 将数据插入 MsSQL DB。

我正在使用带有 SQL-LINQ 的 (DBML) 实体

我有 3 个表,其中 2 个与第一个连接

表格

用户

身份证、姓名、姓氏、电子邮件

汽车

id、id_User、型号、年份

工作

id,id_User,位置

我使用这段代码将数据添加到 SQL 中

DataUserDataContext data = new DataUserDataContext(); 
User u = new User();
u.Name= "John";
u.Surname= "Lock";
u.email = "someemail@email.com" 
data.Users.InsertOnSubmit(u);
p.SubmitChanges();  

现在我的问题是:

考虑到我也应该填写 Car 和 Work 表,如何插入新记录?

使用之前的代码并获取 ID(如果我没记错的话,有办法获取最后一个实体)

使用此 id 将记录插入 Car 和 Work Table

有没有办法在一个独特的步骤中做到这一点?

【问题讨论】:

    标签: sql asp.net-mvc linq


    【解决方案1】:

    不要考虑 ID 而是对象...将此代码放在 SubmitChanges() 之前...

    u.Car = new Car() { model = 'honda', year = 2000 };
    u.Work = new Work () { location = 'new york' };
    

    【讨论】:

    • 我没有 u.Car 但只有 u.Cars 是用户的实体集,所以我无法创建新的 Car()
    • 我明白了,但我无法将我的对象与其他对象关联,所以应该是 MVC 2 的问题,它错过了这个功能?
    【解决方案2】:

    首先你也可以使用它来像这样将数据插入到用户表中

    DataUserDataContext data = new DataUserDataContext(); 
    User u = new User();
    u.Name= "John";
    u.Surname= "Lock";
    u.email = "someemail@email.com" 
    data.Users.AddObject(u)
    data.SubmitChanges();
    

    您可以像这样从您的用户表中获取最后插入的 id

    var UserID=  (from con in dbdata.Users
         select con).Max(x => x.UserID);
    

    您可以使用从用户表中获取最后插入的 id

    data.Users.OrderByDescending(u => u.UserId).FirstOrDefault()
    

    您可以使用此 ID 从您的汽车和工作台插入记录,如下所示

    用于汽车桌

    DataUserDataContext data = new DataUserDataContext(); 
    Car objcar = new Car()
    objcar.id_User = UserID;
    objcar.model="hondacity";
    objcar.year="2012";
    data.Cars.AddObject(objcar);
    data.SubmitChanges();
    

    工作台

    DataUserDataContext data = new DataUserDataContext(); 
    Work objwork=new Work();
    objwork.id_User =UserID;
    objwork.Location="US";
    data.Works.AddObject(objwork);
    data.SubmitChanges();
    

    我认为这会对你有所帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-03
      • 1970-01-01
      • 2017-01-10
      • 1970-01-01
      • 2015-09-25
      相关资源
      最近更新 更多