Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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# 如何在model first EF 4中永久自定义表映射详细信息?_C#_Entity Framework - Fatal编程技术网

C# 如何在model first EF 4中永久自定义表映射详细信息?

C# 如何在model first EF 4中永久自定义表映射详细信息?,c#,entity-framework,C#,Entity Framework,是否可以先永久更改EF 4模型中实体的映射详细信息?我希望能够将实体映射到特定的表名和列名。我可以在实体设计器中执行此操作,但当我使用“从模型生成数据库”创建部署SQL脚本时,这些自定义映射将被销毁 我需要这样做的原因是,虽然我可以控制大多数表定义,但在少数情况下,我需要使用外部应用程序期望的特定表定义。这些表和列(IMO)的名称不好,我想在我的C代码中为关联实体使用更友好的名称。是的,有一种方法,但要做的工作很多。在定义预期名称时,必须使用自定义,并且必须修改生成MSL和SSDL的T4模板,该

是否可以先永久更改EF 4模型中实体的映射详细信息?我希望能够将实体映射到特定的表名和列名。我可以在实体设计器中执行此操作,但当我使用“从模型生成数据库”创建部署SQL脚本时,这些自定义映射将被销毁


我需要这样做的原因是,虽然我可以控制大多数表定义,但在少数情况下,我需要使用外部应用程序期望的特定表定义。这些表和列(IMO)的名称不好,我想在我的C代码中为关联实体使用更友好的名称。

是的,有一种方法,但要做的工作很多。在定义预期名称时,必须使用自定义,并且必须修改生成MSL和SSDL的T4模板,该模板将使用注释中的名称而不是属性名称(我希望它的工作方式与生成SQL脚本的工作方式相同)。它只适用于EFv4。

我编辑了我的答案-您必须编辑T4模板以生成MSL和SSDL。修改SSDL后,将自动创建SQL。我没有测试它,但它可以用于修改SQL生成。