Doo*_*ake 10 entity-framework entity-framework-4
就像问题所说:在Visual Studio中,当我在Model.edmx中,当我从数据库更新模型...添加一些新的数据库字段后,它创建了一个几乎重复的Model1.Designer.cs文件,导致与原始Model.Designer.cs.
我可以删除新的Model1.Designer.cs文件,但是新添加的字段不可用.
有没有解决方案(除了删除和重新创建模型)?
Kev*_*van 10
听起来您可能已删除并重新创建模型(或类似的东西),但将原始设计器文件保留在目录中.然后,当您添加新模型时,必须使用Model1而不是Model作为设计器文件名.您是否尝试排除Model.Designer.cs文件并使其与Model1.Designer.cs文件一起使用?
好的,看一下我们项目的项目文件中的模型,我可以看到以下可能相关的部分:
<Compile Include="Domain\Model.Designer.vb">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Model.edmx</DependentUpon>
</Compile>
Run Code Online (Sandbox Code Playgroud)
我相信这个告诉项目代码文件是项目的一部分,应该是文件model.edmx的子节点,并在更改时重新生成.
我们也有这个部分:
<EntityDeploy Include="Domain\Model.edmx">
<Generator>EntityModelCodeGenerator</Generator>
<LastGenOutput>Model.Designer.vb</LastGenOutput>
<CustomToolNamespace>Domain</CustomToolNamespace>
</EntityDeploy>
Run Code Online (Sandbox Code Playgroud)
不确定其中哪一个控制生成的文件名,但您可以尝试手动编辑项目文件以查看它是否有所作为.我会说你需要同时改变它们,而不仅仅是一个.
小智 5
原因:
我可以重新创建这个(并且偶尔会犯错误):在运行项目时尝试保存数据库图表(edmx 文件),这样 Visual Studio 就无法写入各种文件并生成具有新名称的文件。可能还有其他方法可以通过使文件不可写入来重新创建它。该项目将继续工作,它只会给版本控制带来问题,我想象一些部署模型。
症状:
额外的实体文件,格式为 [entityname]1.vb、[entityname]1.cs,例如 Person1.vb
项目文件引用了冗余文件,例如:
<Compile Include="Models\DataContexts\FooModel.Designer.vb" />
<Compile Include="Models\DataContexts\FooModel1.Designer.vb">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>FooModel.edmx</DependentUpon>
</Compile>
Run Code Online (Sandbox Code Playgroud)
<EntityDeploy Include="Models\DataContexts\FooModel.edmx">
<Generator>EntityModelCodeGenerator</Generator>
<LastGenOutput>FooModel1.Designer.vb</LastGenOutput>
</EntityDeploy>
Run Code Online (Sandbox Code Playgroud)
<Compile Include="Models\Entities\Person1.vb" />
Run Code Online (Sandbox Code Playgroud)
补救
Change:
<Compile Include="Models\DataContexts\FooModel.Designer.vb" />
<Compile Include="Models\DataContexts\FooModel1.Designer.vb">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>FooModel.edmx</DependentUpon>
</Compile>
To:
<Compile Include="Models\DataContexts\FooModel.Designer.vb">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>FooModel.edmx</DependentUpon>
</Compile>
Change:
<Compile Include="Models\DataContexts\Person1.vb">
<DependentUpon>Foo.tt</DependentUpon>
</Compile>
To:
<Compile Include="Models\DataContexts\Person1.vb">
<DependentUpon>Foo.tt</DependentUpon>
</Compile>
Change:
<EntityDeploy Include="Models\DataContexts\FooModel.edmx">
<Generator>EntityModelCodeGenerator</Generator>
<LastGenOutput>FooModel1.Designer.vb</LastGenOutput>
</EntityDeploy>
To:
<EntityDeploy Include="Models\DataContexts\FooModel.edmx">
<Generator>EntityModelCodeGenerator</Generator>
<LastGenOutput>FooModel.Designer.vb</LastGenOutput>
</EntityDeploy>
Run Code Online (Sandbox Code Playgroud)