Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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# EntityMetadata分类或好友文件是否仍然相关/最佳工作方式?_C#_Entity Framework_Ef Code First - Fatal编程技术网

C# EntityMetadata分类或好友文件是否仍然相关/最佳工作方式?

C# EntityMetadata分类或好友文件是否仍然相关/最佳工作方式?,c#,entity-framework,ef-code-first,C#,Entity Framework,Ef Code First,EntityMetadata分类或好友文件是否仍然相关/最佳工作方式 我直接使用一个我无法控制的数据库,而且 由第三方公司维护 我将假设在这方面会有数据库更改,因为我 总是假设坏事会发生 我希望首先从数据库中使用实体框架代码 我不想在模型中放置属性,当它被覆盖时,当数据库被更新时,我必须重新创建模型 那么EntityMetadata分类或好友文件是否仍然相关/最佳工作方式?我发现很少有人提到它们,而且大多数都是2011年的,所以这让我很惊讶 有关一个好的示例,请参见此处 还有一点重复的代码,

EntityMetadata分类或好友文件是否仍然相关/最佳工作方式

  • 我直接使用一个我无法控制的数据库,而且 由第三方公司维护
  • 我将假设在这方面会有数据库更改,因为我 总是假设坏事会发生
  • 我希望首先从数据库中使用实体框架代码
我不想在模型中放置属性,当它被覆盖时,当数据库被更新时,我必须重新创建模型

那么EntityMetadata分类或好友文件是否仍然相关/最佳工作方式?我发现很少有人提到它们,而且大多数都是2011年的,所以这让我很惊讶

有关一个好的示例,请参见此处


还有一点重复的代码,感觉很糟糕

我想回去回答这个问题

我没有使用EntityMetadata

我在存储库项目中有一些模型,它们用所有漂亮的实体框架属性装饰。一个项目是代码优先,因为它使用my DB,另一个是DB优先,因为它使用第三方项目

然后有一个服务类,您只需询问GetPerson(intid),它将进入它需要的任何存储库,或者为某人同时访问这两个存储库

这是神奇的一点 在请求GetPerson的MVC控制器上,它将使用automapper将对象转换为具有所有MVC属性的显示对象

因此,如果/当第三方数据库发生变化,我必须重建模型时,我不应该失去任何其他属性


请随时提出任何问题或指出此想法中的任何缺陷

我想回去回答这个问题

我没有使用EntityMetadata

我在存储库项目中有一些模型,它们用所有漂亮的实体框架属性装饰。一个项目是代码优先,因为它使用my DB,另一个是DB优先,因为它使用第三方项目

然后有一个服务类,您只需询问GetPerson(intid),它将进入它需要的任何存储库,或者为某人同时访问这两个存储库

这是神奇的一点 在请求GetPerson的MVC控制器上,它将使用automapper将对象转换为具有所有MVC属性的显示对象

因此,如果/当第三方数据库发生变化,我必须重建模型时,我不应该失去任何其他属性


请随时提出任何问题或指出此想法中的任何缺陷

为什么要将表示属性放在存储库对象上?我的理解是,当您拥有一个存储库时,属性应该在域对象上,而不是存储库对象上。然后,当存储库发生更改时,您只需更新域存储库映射。如果您没有对数据库的访问权或控制权,那么您实际上不是在首先使用代码,而是在使用工具从现有数据库生成模型。在这种情况下,您必须使用buddy类来添加您自己的属性,但实际上您不应该将它们添加到实体中,只添加到视图模型中。老实说,我从来没有听说过有第三方公司可以访问他们的数据库。在这种情况下,他们应该为您提供一个API来获取所需的数据。向您无法控制的实体添加属性对您没有任何好处。为什么要在存储库对象上添加表示属性?我的理解是,当您拥有一个存储库时,属性应该在域对象上,而不是存储库对象上。然后,当存储库发生更改时,您只需更新域存储库映射。如果您没有对数据库的访问权或控制权,那么您实际上不是在首先使用代码,而是在使用工具从现有数据库生成模型。在这种情况下,您必须使用buddy类来添加您自己的属性,但实际上您不应该将它们添加到实体中,只添加到视图模型中。老实说,我从来没有听说过有第三方公司可以访问他们的数据库。在这种情况下,他们应该为您提供一个API来获取所需的数据。向您无法控制的实体添加属性对您没有任何好处。