gpt4 book ai didi

c# - EntityFramework 5.0 中的基类/实体

转载 作者:太空狗 更新时间:2023-10-29 18:25:09 25 4
gpt4 key购买 nike

我在数据库优先方法中使用 Entity Framework 5,我正在使用 edmx 文件。

我的大多数实体都有 6 个公共(public)字段。 CreatedAtCreatedBy 等字段。现在,我实现了一些功能作为扩展,这些功能只能应用于那些具有共同点的实体的 IQueryable领域。但是当我实现扩展方法时,它可以被任何类型的 IQueryable 访问,因为它是 T 类型的,我只能定义类型 T 应该始终是一种类型。

所以,我想我可以为具有公共(public)字段的实体提供一个基类,并将类型 T 定义为该基类型。但是,我似乎不能这样做。

关于如何解决这个问题或实现我上面解释的内容有什么想法吗?

最佳答案

不要创建基类。创建一个接口(interface),如下所示:

public interface IMyEntity
{
DateTime CreatedAt { get; set; }
string CreatedBy { get; set; }
// Other properties shared by your entities...
}

然后,您的模型将是这样的:

[MetadataType(typeof(MyModelMetadata))]
public partial class MyModel : IMyEntity
{
[Bind()]
public class MyModelMetadata
{
[Required]
public object MyProperty { get; set; }

[Required]
public string CreatedBy { get; set; }
}
}

关于c# - EntityFramework 5.0 中的基类/实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18275593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com