簡體   English   中英

實體框架4和MVC 3錯誤

[英]Error with Entity Framework 4 and MVC 3

我有一個包含3個表的數據庫:

  • 科目
  • 會員
  • 主題

然后,我將連接字符串添加到web.config並使用以下類創建了EF:

namespace MySite.Models
{
    public class MySiteDBModel : DbContext
    {
        public DbSet<Topic> Topics { get; set; }
        public DbSet<Subject> Subjects { get; set; }
        public DbSet<Member> Members { get; set; }
        public DbSet<TopicDataModel> TopicDataModel { get; set; }
        protected override void OnModelCreating(DbModelBuilder mb)
        {
            mb.Conventions.Remove<PluralizingTableNameConvention>();            
        }
    }

    public class Topic
    {
        [Key]
        public int TopicID { get; set; }
        public int SubID { get; set; }
        public int MemberID { get; set; }
        public string TDate { get; set; }
        public string Title { get; set; }
        public string FileName { get; set; }
        public int Displays { get; set; }
        public string Description { get; set; }
        public virtual Subject Subject { get; set; }
        public virtual Member Member { get; set; }
        public virtual ICollection<TopicView> TopicView { get; set; }
    }
    public class Subject
    {
        [Key]
        public int SubID { get; set; }
        public string SubName { get; set; }
        public virtual ICollection<Topic> Topic { get; set; }
    }

    public class Member
    {
        [Key]
        public int MemberID { get; set; }
        public string FLName { get; set; }
        public string Email { get; set; }
        public string Pwd { get; set; }
        public string About { get; set; }
        public string Photo { get; set; }
        public virtual ICollection<Topic> Topic { get; set; }
    }

    public class TopicDataModel
    {
        [Key]
        public int TopicID { get; set; }
        public string SubName { get; set; }
        public string FLName { get; set; }
        public string TDate { get; set; }
        public string Title { get; set; }
        public int Displays { get; set; }
        public string Description { get; set; }
    }
}

現在,當我嘗試使用以下代碼查詢數據庫時:

public ActionResult Index()
        {
            var topics = from t in db.Topics
                         join s in db.Subjects on t.SubID equals s.SubID
                         join m in db.Members on t.MemberID equals m.MemberID
                         select new TopicDataModel()
                         {
                             TopicID = t.TopicID,
                             SubName = s.SubName,
                             FLName = m.FLName,
                             TDate = t.TDate,
                             Title = t.Title,
                             Displays = t.Displays,
                             Description = t.Description
                         };
            return View(topics.ToList());
        } 

我收到此錯誤:

自創建數據庫以來,支持“ MySiteDBModel”上下文的模型已更改。 手動刪除/更新數據庫,或使用IDatabaseInitializer實例調用Database.SetInitializer。 例如,DropCreateDatabaseIfModelChanges策略將自動刪除並重新創建數據庫,並可以選擇用新數據作為種子。

請幫我!!!!!!

您需要對EF如何處理對數據模型的更改進行一些控制。 朱莉勒曼(Julie Lerman)在“完全關閉代碼優先數據庫初始化”上有一篇不錯的博客文章。

另外,這是一個很好的概述- 內部代碼優先數據庫初始化

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM