为了账号安全,请及时绑定邮箱和手机立即绑定

使用Entity Framework创建数据访问项目

使用Entity Framework创建数据访问项目

C#
哆啦的时光机 2021-05-19 13:14:32
我有自动测试解决方案,(可以说)包含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=&quot;data source=MSSQL-TEST;initial catalog=testCATALOG;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;"         <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)为客户端(调用项目)。


查看完整回答
反对 回复 2021-05-23
  • 1 回答
  • 0 关注
  • 217 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信