将记录插入表中使用LINQ-SQL ASP.NET MVC

时间:2012-10-13 13:41:26

标签: sql asp.net-mvc linq

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

我正在使用(DBML)实体和SQL-LINQ

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

用户

id,姓名,电子邮件

汽车

id,id_User,model,year

工作

id,id_User,location

我使用此代码将数据添加到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 and Work表,如何插入新记录?

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

使用此ID将记录插入Car and Work Table

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

首先,您也可以使用它将数据插入到用户表中,如下所示

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();

您可以从Users表中获取最后插入的ID,如下所示

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

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

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

您可以使用此ID从您的汽车和工作表中插入记录

用于Car table

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();

我认为这会对你有所帮助