3

我有.NET MVC 3項目,我使用SQL成員資格提供程序和實體框架。如何讓sql成員資格提供者和實體框架使用我的數據庫工作?

我在我的SQL服務器上創建了新的數據庫,並使用aspnet_regsql.exe爲成員資格提供程序創建了所有對象,我更改了連接字符串並且工作正常。

現在我想用實體框架數據庫交互。我使用的是Code-First,所以我創建了簡單的實體類,我可以將數據保存到數據庫並進行檢索。

的問題是,其中的實體框架保持它的數據的地方是一個謎。我在我的項目中找不到任何數據庫,並且我的SQL數據庫中沒有新表。

如果我添加第二個連接字符串web.config文件(第一個是爲成員提供)我的實體框架停止工作(我認爲它應該創建在我的數據庫的新表),但它並沒有做到這一點。

我的實體類的樣子:

public class MyEntities : DbContext { 
    public DbSet<Business> Businesses { get; set; } 
} 

而且我發現了一個異常Invalid object name 'dbo.Businesses'

任何幫助將不勝感激。

我的連接字符串如下所示:

<add name="ApplicationServices" 
    connectionString="Data Source=.; 
        Initial Catalog=MyDbName; 
        Persist Security Info=True; 
        User ID=sa; 
        Password=mypassword" 
    providerName="System.Data.SqlClient" 
/> 
<add name="MyEntities" 
    connectionString="data source=.; 
         Initial Catalog=MyDbName; 
         Persist Security Info=True; 
         User ID=sa; 
         Password=mypassword" 
    providerName="System.Data.SqlClient" 
/> 

回答

2

http://www.codeproject.com/KB/web-security/EFMembershipProvider.aspx這是實現與實體框架custome成員提供很好的例子。閱讀該第一 Can I use Entity Framework with ASP.NET Membership?

+0

非常感謝您的答覆。說實話我不想自定義成員資格提供者,我只想使它自己工作,並堅持使用實體框架我的數據。我不能讓實體框架本身我的數據庫:( – Burjua

+0

然後先用數據庫,並使用會員數據庫的EDMX文件。然後,你將有機會獲得DB雖然EF和會員供應商。 –

+0

好了,現在我用的模型第一種方法,我生成的簡單模型,看看錶在我的數據庫中創建的,這聽起來很傻,但現在我無法找到如何使用我的模型,我怎麼能增加網元入門呢? – Burjua

2

我剛剛花了2小時,試圖解決這個問題,我終於得到了它)

只是讓EF首先創建您的數據庫(使用CodeFirst方法),然後用aspnet_regsql.exe將成員資格表添加到數據庫。

它不工作,周圍的其他方法:(

我已經加入EF的DbContext到主頁控制器,使EF將在國內首家推出該網站的創建數據庫。

namespace Rem.Controllers 
{ 
    public class HomeController : Controller 
    { 
     DataEntities db = new DataEntities(); <-------------- 

     public ActionResult Index() 
     { 
      ViewBag.Message = "Домашняя страница"; 

      City c = db.Cities.Find(5); <-------------------- 

      return View(); 
     } 

     public ActionResult About() 
     { 
      ViewBag.Message = "Описание сайта"; 

      return View(); 
     } 

     public ActionResult Contact() 
     { 
      ViewBag.Message = "Контактные данные"; 

      return View(); 
     } 
    } 
} 

之後,我剛剛運行的ASPNET實用

爲了避免連接字符串我通過我的DataContext派生類的構造函數的ConnectionString名的DbContext構造的重複:

namespace Rem.Models 
{ 
    public class DataEntities : DbContext 
    { 
     public DbSet<User> Users { get; set; } 
     public DbSet<City> Cities { get; set; } 
     public DataEntities():base(@"dbcs") { ; } <---------- 
    } 
}  
相關問題