1)
我有一个与 WCF 一起使用的实体框架 (v.5) 项目。
我的数据库有一个 Account 表,因此我有一个“Account”实体框架对象。我想公开一个方法:
AddAccount(Account a)
Account Parameter 是从我的数据库生成的实体框架对象。
每次我尝试使用此服务时,Account 的属性都是空的,我不明白为什么。
这是我的代码示例:
周转基金:
界面:
[OperationContract(Name = "AddAccount")]
string AddAccount(Account Account);
实施:
public string AddAccount(Account newAccount)
{
myContext db=new myContext();
db.Accounts.Add(newAccount);
db.SaveChanges();
return "something";
}
Account Class 由 EF 生成,具有int
“id”字段和DateTime
“Created”字段。
我的问题是,为什么“newAccount”参数是空的?
2)
据我所知,公开具有复杂参数的方法的最佳方法是使用DataContract
and DataMembers
,这引发了我想问的两个问题。
a)我需要实现DataContract
一个实体对象吗?据我了解,不建议直接公开 EF 对象,而是DataContract
在我想转移的类上使用,但另一方面,我在尝试使用我的项目时没有收到错误,该项目未DataContract
在 Account 上实现.
b) 除了让客户端了解我的数据库表的构建之外,为什么不建议将 EF 对象作为参数传递?
谢谢。