Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 保护实体对象中属性的最佳实践(实体框架6.0)_C#_.net_Entity Framework_Oop - Fatal编程技术网

C# 保护实体对象中属性的最佳实践(实体框架6.0)

C# 保护实体对象中属性的最佳实践(实体框架6.0),c#,.net,entity-framework,oop,C#,.net,Entity Framework,Oop,在我的实体对象中,我有两个不想公开的属性(它们表示相同的选项,但必须代表设置使用)。实现我想要的方法如下: private string Path1 { get; set; } private string Path2 { get; set; } public string GetThePath() { if([expression]) return Path1; return Path2; } 但我不确定在实体对象中编写方法是否是最佳实践。 以上示例的最佳实

在我的实体对象中,我有两个不想公开的属性(它们表示相同的选项,但必须代表设置使用)。实现我想要的方法如下:

private string Path1 { get; set; }
private string Path2 { get; set; }

public string GetThePath()
{
    if([expression])
        return Path1;
    return Path2;
}
但我不确定在实体对象中编写方法是否是最佳实践。
以上示例的最佳实践是什么?

这取决于您使用过或想要使用的体系结构。 我们在保持POCO实体无任何功能(行为)方面有很好的实践。就像数据容器一样(仅限公共属性)

我看到一些开源项目,他们正在POCO中混合验证,我看到其他项目,他们在实体中添加了一些行为

如果你真的想保持你的实体没有任何行为:

  • 您可以使用Decorator模式动态地将额外的职责附加到实体

  • 您可以在业务逻辑层处理数据处理问题


这取决于您使用过或想要使用的体系结构。 我们在保持POCO实体无任何功能(行为)方面有很好的实践。就像数据容器一样(仅限公共属性)

我看到一些开源项目,他们正在POCO中混合验证,我看到其他项目,他们在实体中添加了一些行为

如果你真的想保持你的实体没有任何行为:

  • 您可以使用Decorator模式动态地将额外的职责附加到实体

  • 您可以在业务逻辑层处理数据处理问题


您的方法没有问题。您的方法没有问题。