.NET 3.5 SP1を使用しています。 テーブル 'app_User_table'に基づいて、 'category_table'と 'MyUser'テーブルに基づいてエンティティ 'カテゴリ'を作成しました。Entity Framework v1の外部キーの追加と更新
CREATE TABLE category_table (
catg_id int,
catg_name varchar(50),
catg_description varchar(250)
)
CREATE TABLE App_User_table (
userid int,
username varchar(50),
fullname varchar(50), catg_id int,
fullAddress varchar(200),
comments varchar(1000),CONSTRAINT FK_1 FOREIGN KEY (catg_id) REFERENCES Category_table (catg_id)
)
public class Category: System.Data.Objects.DataClasses.EntityObject{
public int CategoryId{get; set;}
public string CategoryName {get; set;}
....
}
public class AppUser : System.Data.Objects.DataClasses.EntityObject{
public int Uid {get; set;}
public string UserName {get; set;}
public string Name {get; set;}
public string Address {get; set;}
public string Comment {get; set;}
public Category category_table { .. }
public System.Data.Objects.DataClasses.EntityReference<Category> category_tableReference {...}
...........
}
私は、ASP.NET MVCアプリケーションでAPPUSERエンティティを追加して更新します。更新のための
//create entity with passed values
AppUser user = new AppUser(){Uid=id, .... }
//Set EntityReference
user.category_tableReference.EntityKey = new System.Data.EntityKey("MyContext.CategorySet", "CategoryId", categoryIdSelected);
myContext.AddToCategorySet(user);
myContext.SaveChanges(true);
:
//create entity with passed Id
AppUser user = new AppUser(){Uid=id }
//Attach entitymyContext.AttachTo("UserSet", user);
//Update entity with passed values
user.Address = addr;
....
のDropDownListから区分を選択
//更新
user.category_tableReference.EntityKey = new System.Data.EntityKey("MyContext.CategorySet", "CategoryId", categoryId);
UpdateメソッドがDATABに区分を更新しないの追加については
ase。
問題を解決する最善の方法は何ですか。
ありがとうございます。
に役立ちます。アレックスの「スタブオブジェクト」の提案以外にも、IDだけでEntityKeyを新規に作成し、それを参照に割り当てることができます。 –
まあ、Alexの提案は基本的に私のものと同じです - あなたは "フル" Categoryオブジェクトを作成する必要があります - 単に "4"という値を外部キー列に割り当てることはできません - あなたは "Category"オブジェクト。 –
EntityKeyの割り当て方法をすべて表示できますか? –