1)
WCF で動作する Entity Framework (v.5) プロジェクトがあります。
私のデータベースには Account テーブルがあるため、「Account」エンティティ フレームワーク オブジェクトがあります。メソッドを公開したい:
AddAccount(Account a)
Account パラメータは、データベースから生成されたエンティティ フレームワーク オブジェクトです。
このサービスを利用しようとするたびに、Account のプロパティが空になり、その理由がわかりません。
これが私のコードの例です:
WCF :
インターフェース:
[OperationContract(Name = "AddAccount")]
string AddAccount(Account Account);
埋め込む:
public string AddAccount(Account newAccount)
{
myContext db=new myContext();
db.Accounts.Add(newAccount);
db.SaveChanges();
return "something";
}
アカウント クラスは EF によって生成され、int
「id」フィールドとDateTime
「Created」フィールドを持ちます。
私の質問は、なぜ「newAccount」パラメーターが空なのですか?
2)
私の知る限り、複雑なパラメーターを持つメソッドを公開する最善の方法は and を使用することDataContract
でありDataMembers
、それによって 2 つの疑問が生じます。
DataContract
a) Entity オブジェクトに実装する必要がありますか? 私が理解したことから、EFオブジェクトを直接公開することはお勧めできませんがDataContract
、転送したいクラスで使用しますが、一方、プロジェクトを使用しようとしてもエラーは発生しませんがDataContract
、アカウントに実装されていません.
b) データベース テーブルのビルドをクライアントに理解させる以外に、EF オブジェクトをパラメーターとして渡すことが推奨されないのはなぜですか?
ありがとう。