任何使用它能够域对象&也可与检的对象实施了从一个共同的接口?我想单独的我的所有它能够属性进入领域对象,留下我也可与检和接口的清洁。

问题是它能够与引发错误,当它试图联系的接口,与具体的课程。

它能够.MappingException:协会引用的映射类:IContact

我明白为什么它抱怨关于使用非处于休眠状态的接口,但是我在努力可视的方式进行重组。骨架的再现我的代码列出如下,任何想法,对于如何结构,我的代码的更好?

public interface ICompany
{
    IList<IContact> Contacts { get; set; }
}

public class CompanyDTO : ICompany
{
    private IList<IContact> contacts;
    public IList<IContact> Contacts { get { return this.contacts; } set { this.contacts = value; } }

}

[ActiveRecord]
public class Company : ActiveRecordBase<Company>, ICompany
{
    private IList<IContact> contacts;
    [HasMany(Inverse=true, Table="Contact", ColumnKey="CompanyId")] 
    [ScriptIgnore]
    public IList<IContact> Contacts { get { return this.contacts; } set { this.contacts = value; } }
}

编辑:

我想要有一个共同的接口,所以,我可以保证他们都保持同一领域(即。靠在编译器,让他们相一致)。它还允许我使用也可与检是在看我的一部分应用,但是投下他们域对象为商业和数据访问。此外,亚历克斯的解决方案不起作用,因为ICompany的联系的类型IList,不IList.我想保持它作为IContact所以我也可与检的对象并不了解的接触域对象。

有帮助吗?

解决方案

在您的具体情况下,你应该只添加Type = typeof(Contact)到映射属性,像这样:

[HasMany(Inverse=true, Table="Contact", ColumnKey="CompanyId", Type=typeof(Contact))]

其他提示

好在你域不能使用IContract要参考域实体使用的具体类替代。如果你想纠正你的版本用简单:

[ActiveRecord]
public class Company : ActiveRecordBase<Company>
{
    private IList<Contact> contacts;
    [HasMany(Inverse=true, Table="Contact", ColumnKey="CompanyId")] 
    [ScriptIgnore]
    public IList<Contact> Contacts { get { return this.contacts; } set { this.contacts = value; } }
}

我没有看到这点来接你域和你交互.他们都是耦合的,并且他们可以有不同的信息。例如,你可以保留一些信息非常轮封装成你域和只有通些其他信息。也可与检都是为了transfert你想要的数据共享与上层。

你可以有基类定义的实体和你ValueObject.在简短的实体:DomainEntity ID能意味着他们可以持续存在。ValueObject=也可与检无法持久化(不ID能)

看看核心设计的尖拱门:

  • /BaseObject.cs:提供的基本目比较的服务。
  • /实体。cs:提供了一个对象域 签署和该键ID财产。这也验证 支持,它能够验证程序。对象扩展从实体 必须有至少一个[DomainSignature]财产;它会把一个 设计-通过合同的例外如果这是侵犯。该接口 IEntityWithTypedID让你滚你自己的。
  • /ValueObject.cs:这是一个值对象,其中所有的 性时,使用比较的另一个值的对象。对象 延长从ValueObject可能没有任何[DomainSignature] 属性;它会把一个设计-通过合同的例外如果这是 到侵犯。

我将做什么,如果我有[的hasMany]属性?它实际上并没有属性名“类型”,但[属性]和[属于关联]的人都有。

<强>更新

在答案是使用CollectionType = typeof(YourType)

<强>更新2

没有,它不工作时,该属性被设置为集合类型即列表等 试图设置[的hasMany(typeof运算(meType),...)]但仍然没有作品。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top