gpt4 book ai didi

C# 如何通过向它添加属性来扩展存在于不同 dll 中的类?

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

我有一个 n 层应用程序,它在不同的程序集中有很多层。我使用 Entity Framework 6.1,我想将 ObjectState 属性添加到基本实体以跟踪实体状态。问题是 BaseEntity 位于我的独立于数据库的域对象 dll 中,我想在 Entity Framework 项目中添加 ObjectState 因为此属性与 Entity Framework 相关。如何实现这种行为?

public enum ObjectState
{
Unchanged,
Added,
Modified,
Deleted
}
public interface IObjectState
{
[NotMapped]
ObjectState ObjectState { get; set; }
}

最佳答案

您可以使用 partial classes ,如果您可以编辑域对象项目的代码并将基实体声明为分部类。

namespace DomainNameSpace 
{
public partial class BaseEntity
{
// Your properties and method
}
}

然后在您的 Entity Framework 项目中您可以添加以下代码:

namespace DomainNameSpace 
{
public partial class BaseEntity
{
public enum ObjectState
{
Unchanged,
Added,
Modified,
Deleted
}
public interface IObjectState
{
[NotMapped]
ObjectState ObjectState { get; set; }
}
}
}

或者如果您不能编辑域项目中的文件或不喜欢这种方法,也许继承可以提供帮助。在您的 Entity Framework 项目中创建一个如下所示的类。

namespace YourProjectNameSpace 
{
public class StatefulEntityClassName : BaseEntity
{
public enum ObjectState
{
Unchanged,
Added,
Modified,
Deleted
}
public interface IObjectState
{
[NotMapped]
ObjectState ObjectState { get; set; }
}
}
}

希望这对您有所帮助。

关于C# 如何通过向它添加属性来扩展存在于不同 dll 中的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30907864/

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