Sam*_*Ken 4 ria entity-framework
在RIA域服务中,我添加了一些实用程序功能.比如我们......
public virtual CmsDealer GetCmsDealerById(string id)
{
return this.Context.CmsDealerSet
.Include("CmsItemState")
.FirstOrDefault(p => p.Id == id);
}
Run Code Online (Sandbox Code Playgroud)
现在,如果id是不存在的,那么该函数有它自己的问题,但现在让表格.重要的是函数编译和执行.
但是类似的功能......
public virtual void DeleteCmsDealerById(string id)
{
var dealer = this.Context.CmsDealerSet
.FirstOrDefault(d => d.Id == id);
if (dealer != null)
{
DeleteCmsDealer(dealer);
}
}
Run Code Online (Sandbox Code Playgroud)
抛出编译时错误.
*Parameter 'id' of domain method 'DeleteCmsDealerById' must be an entity type exposed by the DomainService, either directly via a query operation, or indirectly via an included association.*
Run Code Online (Sandbox Code Playgroud)
问题是,我可以理解(字符串id)参数不能被EF加入,但为什么在一种情况下它可以正常而不是另一种情况呢?
输入欢迎:)
Nik*_*ari 10
惯例是删除方法具有接受实体的签名.字符串不是实体.实体是a)具有[Key]成员的类型,b)是域服务中的一种查询方法返回的类型.
另一方面,查询方法不将实体作为参数.因此,string是get查询方法的ok参数.
在您的情况下,您将希望DeleteCmsDealer接受CmdDealer.您仍然可以在方法中查找数据库并删除您加载的实例,而不是附加/删除传入的实例(如果需要).
希望有所帮助.
| 归档时间: |
|
| 查看次数: |
5285 次 |
| 最近记录: |