c# - 如何在 Entity Framework 核心中使用泛型类型?

标签 c# generics ef-core-2.0

如果我有一个看起来像这样的域模型:

public class Foo<T> {
    public Guid Id { get; set; }
    public string Statement { get; set; }
    public T Value { get; set; }
}

我想将它用于内置数据类型(字符串、整数等...)以及日期。
我想像这样使用它:
var foo = new Foo<string>();
foo.Value = "Hey";

如何使用 EF Core 将其保存到数据库中?

我想数据库表看起来像
| Id | Statement | ValueAsString | ValueAsDecimal | ValueAsDate | ValueAsInt | 
| 1  | NULL      | "Hey"         |                |             |            |
| 2  | NULL      |               | 1.1            |             |            |

最佳答案

你应该还有一个类。您的类(class) Foo应该是抽象的。
所以你会得到“:

public abstract class Foo<T> {
    public Guid Id { get; set; }
    public string Statement { get; set; }
    public T Value { get; set; }
}

那么你的实现类将是:
public class Orders: Foo<Order> {
}

现在你有你的 Orders与您可以存储的泛型类型的类。

关于c# - 如何在 Entity Framework 核心中使用泛型类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46825727/

相关文章:

entity-framework-core - EFCore FromSql 异步

c# - Linq 组键不是唯一的

c# - 来自派生类的基类枚举值?

Java:试验泛型

c# - 禁用输出缓存

c# - 用具体类型覆盖抽象方法

c# - 无法将 IEnumerable<T> 的类型隐式转换为 IEnumerable<T>

entity-framework - 无法使用 Entity Framework Core (.net core) 验证实体

c# - 如何将子类作为参数而不是父类传递?

c# - LINQ: "Types in Union or Concat are constructed incompatibly."