我有自动测试解决方案,(可以说)包含3个项目:DataAccessProject(它从db中获取数据,因此可以称为生产者,它是我的StartUpFile)PageObjectStorage场景和步骤项目我要做的是1.使项目使用EF,而无需通知任何其他项目EF甚至存在于解决方案中。我希望(例如)我的第三个项目能够调用诸如DataAccessProject.SomeMethod.GiveMeSomeUsers()之类的东西,因此DataAccessProject将从实体中获取记录,进行魔术操作并简单地返回信息以与页面对象中的值进行比较。我正在努力的是:首先,我遇到了这个错误:No connection string named 'MyEntities' could be found in the application config file我已经阅读了一些有关堆栈的文章,并添加了连接字符串节点(我想避免这种情况),现在出现此错误:Errors: TestModel.ssdl(2,2) : error 0152: No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient'. Make sure the provider is registered in the 'entityFramework' section of the application config file.所以,我的问题是,我在做什么错?我如何安装EF而不在每个项目中都添加对EF的引用(我相信这是EF现在想要的)。相关的.config节点:<entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> <parameters> <parameter value="mssqllocaldb" /> </parameters> </defaultConnectionFactory> <providers> <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> </providers></entityFramework><connectionStrings> <add name="test1Entities" connectionString="metadata=res://*/TestModel.csdl|res://*/TestModel.ssdl|res://*/TestModel.msl;provider=System.Data.SqlClient;provider connection string="data source=MSSQL-TEST;initial catalog=testCATALOG;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" <providerName="System.Data.EntityClient" /></connectionStrings>现在,我从我的3个程序中调用此方法public static void TestMyEF(){ using (var ctx = new test1Entities()) { var abc = ctx.someTable.FirstOrDefault(); }}上下文ctor:public test1Entities(): base("name=test1Entities"){}ps我正在使用数据库的第一种方法(从现有的数据库创建.edxm),我有点担心,因为我的.config节点包含<parameter value="mssqllocaldb" />,数据库不是本地的。
1 回答
胡子哥哥
TA贡献1825条经验 获得超6个赞
为结果创建一个通用的类库,例如:
public class MyResultClass
{
public readonly object Value;
public readonly Exception ResultException;
//add more properties if needed
public MyResultClass(object value)
{
this.ResultException = null;
this.Value = value;
}
public MyResultClass(Exception ex)
{
this.ResultException = ex;
}
}
然后在您的项目中使用此类的引用,以使您不具有的依赖关系,entity-framework然后可以使用json(序列化和反序列化)将数据从您的数据转换DAP(DataAccessProject)为客户端(调用项目)。
- 1 回答
- 0 关注
- 217 浏览
添加回答
举报
0/150
提交
取消