EF6迁移至Azure SQL后,配置文件codeConfigurationType命名是否正确?
问题解答
你的配置值ProjectName1.DataContextConfiguration, ProjectName1格式是正确的,符合EF6通过配置文件指定DbConfiguration的要求,具体说明如下:
格式说明
EF6的codeConfigurationType属性要求值为类型的完全限定名(命名空间+类名), 程序集名称:
ProjectName1.DataContextConfiguration是你的自定义DbConfiguration类的完全限定名(假设类位于ProjectName1命名空间下)- 后面的
ProjectName1是该类所在的程序集名称,对应项目属性里的"程序集名称"
关键注意事项
- 确保
DataContextConfiguration是public类,且正确继承DbConfiguration并配置SQL Azure的执行策略,示例代码:public class DataContextConfiguration : DbConfiguration { public DataContextConfiguration() { // 配置SQL Azure的瞬时故障重试策略 SetExecutionStrategy("System.Data.SqlClient", () => new SqlAzureExecutionStrategy()); } } - 确认项目的程序集名称确实是
ProjectName1:右键项目→属性→应用程序标签页,查看"程序集名称"字段 - 移除手动添加在
APIEntities上的[DbConfigurationType]特性,避免配置冲突 - 配置文件中的节点要正确放置在
configuration节点下,示例web.config/app.config片段:<configuration> <entityFramework codeConfigurationType="ProjectName1.DataContextConfiguration, ProjectName1"> <!-- 其他EF相关配置,比如默认连接工厂、提供程序等 --> </entityFramework> </configuration>
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

