具有不同Id类型的任何类型映射

时间:2010-07-23 07:01:37

标签: c# nhibernate mapping polymorphism any

我正在为电话簿中的联系人制作一个事件规划应用程序。避免所有public virtualprotected内容,我的Contact课程如下:

class Contact {
    //...
    Int32 Id { get; private set; } //primary key;
    String Name { get; private set; } 
    //...
}

客户要我处理他自己的电话簿和我的应用程序。所以我想从IContact中提取Contact接口,并添加另一个类InternalContact(这个名字很糟糕,我知道),实现相同的接口。问题是客户的数据库使用指定的字符串作为主键,因此Contact的Id类型和InternalContact的Id类型将不同。是否可以使用Invitation.Contact类型映射映射<any>属性,即使Id类型不同?

提前致谢, Giulio的

1 个答案:

答案 0 :(得分:0)

不确定这是否是您要求的,但您可以执行以下操作来创建类:

interface IContact<T>
{
    T Id { get; }
}

public class Contact : IContact<int>
{
    public int Id { get; private set; }
}

public class InternalContact : IContact<string>
{
    public string Id { get; private set; }
}