【问题标题】:Entity Framework doesnt access via DLL to a Database实体框架不通过 DLL 访问数据库
【发布时间】:2013-07-11 21:29:37
【问题描述】:

完整的代码可以在这里找到:http://home.htw-berlin.de/~s0531210/eb/DataBaseTest.zip

这是一个带有测试实体框架的简单项目。 我有一个允许访问 SQL Server Compact 数据库的 DLL。此访问由 Enttiy Framework 5.0 进行。

第二个项目是访问此 DLL 的控制台应用程序。从 DLL 调用类以将示例数据存储到数据库中时,异常是“错误基础提供程序打开”。

调用时出现此异常:db.SaveChanges();

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;



namespace DatabaseLibrary
{
    public class SLD
    {
        public SLD()
        {
        }

        public void enterData()
        {
            using (var db = new SLDDatabaseModelEntitiesContext())
            {
                for (int i = 0; i < 10; i++)
                {
                    SLDEntity entrysfoo = new SLDEntity();
                    entrysfoo.Flip = i;
                    entrysfoo.Slidename = "bla" + i;
                    db.SLDEntity.Add(entrysfoo);
                }
                db.SaveChanges(); //DAtanbank speichern
            }
        }

        public SLDEntity getFromDataBase(string wsiname)
        {
            using (var db = new SLDDatabaseModelEntitiesContext())
            {
                foreach (var item in db.SLDEntity)
                {
                    if (item.Slidename.Equals(wsiname))
                    {
                        return item;
                    }
                }
            }

            return new SLDEntity();
        }
    }
}

我希望你们能帮助我。我不知道问题出在哪里。我在互联网上搜索了一些关于权限 iusses 的信息,但连接字符串是 reqiredpermissin=false。

【问题讨论】:

  • getFrom 方法是否有效? (顺便说一句:过滤方式非常低效)。
  • 问题将出在 ConnectionString 以及实际 db 文件的位置/方式上。发布 ConnectionString 以开始。
  • 是的,我想看看你的控制台应用程序项目的 app.config 中的连接字符串。我下载了您的项目并将其指向 sfd 文件在您的数据库库项目中的位置,它似乎对我来说工作正常。在您的控制台应用程序中检查该位置并验证 SDF 确实存在。

标签: c# entity-framework dll sql-server-ce


【解决方案1】:

感谢连接字符串有效的提示。数据库不在控制台应用程序中的 App.config 文件指向的位置。但我不明白为什么dll中的连接字符串,其中一个也有一个App.config文件被忽略。如果需要,连接字符串仅在 DLL 中可用,是否必须通过命令手动在 DLL 中设置连接字符串?

【讨论】:

  • 否 - 任何配置都必须在执行应用程序的配置文件中。为类库和其他应用程序创建的配置文件实际上只是为了帮助您了解该库需要哪些配置。确保执行程序集的配置具有任何必需的配置仍然是您的责任。
  • 这是我发现的:为您的 DLL 配置 App.Config:link 我认为这很有趣,但之前还需要做一些工作。
猜你喜欢
  • 2011-11-05
  • 1970-01-01
  • 1970-01-01
  • 2019-12-17
  • 2014-07-13
  • 2011-11-14
  • 2016-08-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多