如何在Orchard CMS的n层架构中使用实体框架

时间:2019-08-03 23:09:04

标签: c# asp.net entity-framework orchardcms

我想在数据访问层中使用Entity Framework,但是每当我转到数据访问层并尝试访问数据库时,都会收到错误消息,指出未下载Entity Framework。我确实将Entity Framework添加到了该层,但是由于在Orcahrd.Web中寻找连接字符串而无法正常工作,并且因为没有将Entity Framework添加到Orchard.Web项目中而无法正常工作。 。

我需要某种方法来从数据访问层而不是Orchard.Web抓取连接字符串。

我在Orchard.Web项目中添加了Entity Framework,并且该框架可以工作,但是我不想将Orchard更改太多,以使其难以升级。我也不认为有必要在项目中添加实体框架,因为在那里不会使用它。

我的数据访问层存储库

using System.Configuration;
using BusinessObjects.ContactUs;
using tiko23867.DataAccess.Models;

namespace tiko23867.DataAccess
{
    public interface IContactUsRepository
    {
        void Save(ContactUsItem item);
    }

    public class ContactUsRepository : IContactUsRepository
    {
        public ContactUsRepository()
        {
        }

        public void Save(ContactUsItem item)
        {
            var contactUsRequest = new ContactUsRequest
            {
                Email = item.Email,
                FirstName = item.FirstName,
                LastName = item.LastName,
                Message = item.Message
            };

            using (var context = new Dab())
            {
                context.ContactUsRequests.Add(contactUsRequest);
                context.SaveChanges();
            }
        }
    }
}

该项目的app.config

<configuration>
    <configSections>
        <section name="entityFramework" 
                 type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </configSections>
    <entityFramework>
        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
        <providers>
            <provider invariantName="System.Data.SqlClient" 
                      type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
        </providers>
    </entityFramework>
    <connectionStrings>
        <add name="Dab" 
             connectionString="data source=.\SQLEXPRESS;initial catalog=dabdb;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" 
             providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

0 个答案:

没有答案