gpt4 book ai didi

entity-framework - Ria DomainService 输入参数怪异,Delete 特殊?

转载 作者:行者123 更新时间:2023-12-04 07:26:26 25 4
gpt4 key购买 nike

在 RIA 域服务中,我添加了一些实用功能。比如我们有...

public virtual CmsDealer GetCmsDealerById(string id)
{
return this.Context.CmsDealerSet
.Include("CmsItemState")
.FirstOrDefault(p => p.Id == id);
}

现在,如果 id 不存在,该函数有它自己的问题,但让我们暂时将其列出。重要的是函数编译和执行。

但是类似的功能...
public virtual void DeleteCmsDealerById(string id)
{
var dealer = this.Context.CmsDealerSet
.FirstOrDefault(d => d.Id == id);

if (dealer != null)
{
DeleteCmsDealer(dealer);
}
}

抛出编译时错误。
*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.*

问题是,我可以理解 (string id) 参数对 EF 是 Not Acceptable ,但是为什么在一种情况下可以,而在另一种情况下不行?

欢迎输入:)

最佳答案

约定是删除方法具有采用实体的签名。字符串不是实体。实体是一种类型,a) 具有带有 [Key] 的成员,b) 是由域服务中的查询方法之一返回的类型。

另一方面,查询方法不将实体作为参数。因此 string 是 get 查询方法的 ok 参数。

在您的情况下,您会希望 DeleteCmsDealer 接收 CmdDealer。您仍然可以在您的方法中查找数据库并删除您加载的实例,而不是在需要时附加/删除传入的实例。

希望有帮助。

关于entity-framework - Ria DomainService 输入参数怪异,Delete 特殊?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1341418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com