【问题标题】:Entity Framework map struct/complex type without model properties没有模型属性的实体框架映射结构/复杂类型
【发布时间】:2014-01-18 23:23:01
【问题描述】:

我有一个“模型struct”,它在内部是一个字符串,但与GUID 有点相似。

public struct Token {

    private string _value;

    private Token(Guid uuid) {
        _value = Token.FromGuid(uuid);
    }

    public static Token FromGuid(Guid uuid) {
        // perform 'transformation'
        // stuff
        // return...
    }

    // other static methods to create a token...

}

如何使用 Entity Framework 6 Code First 映射此实体?我知道不支持结构,但 复杂类型 似乎也不适用,因为 class 不包含任何属性。

【问题讨论】:

  • 地图在什么意义上。显示您想要的用法。你想要一个具有这种类型属性的 Poco 吗?你已经尝试了什么?
  • '你想要一个具有这种类型属性的 Poco 吗?'确切地。我需要一个“全球唯一”的 ID,它像 GUID 一样是随机的,但对 url 友好。
  • 为什么不使用公共字符串 set/get 并在内部使用您的结构?你为什么要打折一个复杂的类型?

标签: c# entity-framework fluent entity-framework-6


【解决方案1】:

结构不是受支持的 EF 类型。见ef supported primitives

您将需要改用复杂类型。

  • modelBuilder.ComplexType<Details>();
  • 数据标注[ComplexType]

但请考虑使用字符串并相应地管理公共 get/set 的替代方案

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多