gpt4 book ai didi

entity-framework - EF4 创建自定义 DbFactoryProvider 和其他 Db* 类

转载 作者:行者123 更新时间:2023-12-04 07:22:21 24 4
gpt4 key购买 nike

我试图创建一组自定义类来创建我自己的 Entity Framework 将与之通信的提供者。我创建了从抽象类 DbProviderFactory 继承的自定义类,并且刚刚开始测试是否可以让它与 EF 对话,但我遇到了问题。

<configuration>
<system.data>
<DbProviderFactories>
<add name="Custom Data Provider"
invariant="CustomClient"
description=".Net Framework Data Provider for Custom"
type="CustomClient.CustomProviderFactory, CustomClient,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</DbProviderFactories>
</system.data>
<connectionStrings>
<add name="AdventureWorksEntities"
connectionString="metadata=...;
provider=CustomClient;
provider connection string=&quot;data source=.;
initial catalog=AdventureWorks;integrated security=True;
multipleactiveresultsets=True;App=EntityFramework&quot;"
providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>

我认为使用上面定义的 CustomClient 可以顺利进入 Entity goodness,但是当我的代码尝试创建一个新的 AdventureWorksEntities 对象时,我得到以下异常:

无效操作异常请求的 .Net Framework 数据提供程序的实现没有 System.Data.Common.DbProviderFactory 派生类型的实例字段。

查看 DbProviderFactory 的可用覆盖没有提及 Instance 成员。如果它不是 DbProviderFactory 的类/接口(interface)的一部分,我不太确定为什么它需要这个字段。修复是否像提供一个名为 Instance 的字段一样简单,该字段返回我的自定义类型的对象?

最佳答案

将此添加到您的自定义提供程序:

public static readonly CustomProviderFactory Instance = new CustomProviderFactory();

所有内置工厂都有这个 - 它们被用作单例。

关于entity-framework - EF4 创建自定义 DbFactoryProvider 和其他 Db* 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7160540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com