0

こんにちは、ASP.NET MVC を使用して MSQL DB にデータを挿入する方法を知っています。

SQL-LINQ で (DBML) エンティティを使用しています

3 つのテーブルがあり、そのうちの 2 つが最初のテーブルと結合します

テーブル

ユーザー

ID、名前、姓、電子メール

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 を使用して、車と作業テーブルにレコードを挿入します

ユニークなステップでこれを行う方法はありますか?

4

2 に答える 2

0

IDの観点から考えるのではなく、オブジェクトの観点から考えてください...このコードをSubmitChanges()の前に置いてください...

u.Car = new Car() { model = 'honda', year = 2000 };
u.Work = new Work () { location = 'new york' };
于 2012-10-13T14:07:22.810 に答える
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を使用して、このように車や作業テーブルからレコードを挿入できます。

車のテーブル用

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

私はこれがあなたを助けると思います

于 2012-10-13T14:39:25.807 に答える