加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – EF – 将泛型类映射到复杂类型

发布时间:2020-12-15 21:48:53 所属栏目:百科 来源:网络整理
导读:可以将泛型类映射到复杂类型吗? 我有一个小类,有3个属性 – 字符串,整数和泛型类型,并希望将字符串和int(字符串实际上是序列化泛型类型)映射到复杂类型. 我认为这是不可能的,因为泛型类“FQDN”是MyGenericClass somclass复杂类型的概念类型只是MyGenericCl
可以将泛型类映射到复杂类型吗?
我有一个小类,有3个属性 – 字符串,整数和泛型类型,并希望将字符串和int(字符串实际上是序列化泛型类型)映射到复杂类型.

我认为这是不可能的,因为泛型类“FQDN”是MyGenericClass< somclass>复杂类型的概念类型只是MyGenericClass是否有聪明的解决方案,或者我必须为泛型类的每种用法定义ComplexType?

解决方法

我不知道我是否理解正确,但为什么不通过覆盖转换运算符来使用自定义强制转换.在下面的示例中,我将通用复杂类隐式地转换为非泛型类.

阅读更多@ How do I provide custom cast support for my class?

public class ClassComplex<T> 
{
    public T MyGenericValue { get; set; }
    public string MyStringValue { get; set; }
    public int MyIntValue { get; set; }

    public static implicit operator ClassComplex(ClassComplex<T> a)
    {
        return new ClassComplex() { MyIntValue = a.MyIntValue,MyStringValue = a.MyStringValue };
    }
}

public class ClassComplex
{
    public string MyStringValue { get; set; }
    public int MyIntValue { get; set; }
}

public class Test
{
    public Test()
    {
        ClassComplex<int> ccg = new ClassComplex<int>();
        ccg.MyGenericValue = 1;
        ccg.MyIntValue = 2;
        ccg.MyStringValue = "3";

        ClassComplex cc = ccg;
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读