使用Entity Framework时出现数据库错误

时间:2018-04-24 14:03:54

标签: c# database visual-studio entity-framework

我想要实现的目标非常简单。我想要一个本地数据库文件,通过使用Entity Framework,我可以从列表视图中显示记录。问题是,每次我构建它时,我都会收到此错误:

  

' DiaryEntities'不包含'标题'的定义没有延伸方法'标题'接受类型' DiaryEntities'的第一个论点。可以找到(你错过了使用指令或程序集引用吗?)

我的数据库名为Diary,我只有一个名为Entries的表,其中包含TitleDateContent列。这是我的文件:



//main.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace diary
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            using (diary.DiaryEntities de = new DiaryEntities())
            {
                var diaries = (from m in de.Diary select m.Title);
                listBox1.Items.AddRange(diaries.ToArray());
            }
        }
    }
}






//DiaryEntities.Context.cs
namespace jurnal1
{
    using System;
    using System.Data.Entity;
    using System.Data.Entity.Infrastructure;
    
    public partial class DiaryEntities : DbContext
    {
        public DiaryEntities() : base("name=DiaryEntities")
        {
        }
    
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }

        public virtual DbSet<DiaryEntities>Diary { get; set; }
    }
}
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

将您的代码更改为:

namespace jurnal1 {
        using System;
        using System.Data.Entity;
        using System.Data.Entity.Infrastructure;
        using System.ComponentModel.DataAnnotations.Schema;

        public partial class DiaryEntities : DbContext {

            public DiaryEntities ( )
                : base ( "name=DiaryEntities" ) {
            }

            protected override void OnModelCreating ( DbModelBuilder modelBuilder ) {

            }
            public DbSet<Entries> Diary { get; set; }

        }

        [Table("entries")]
        public class Entries {
            public int Id { get; set; }
            public string Title { get; set; }
            public DateTime Date { get; set; }
            public string Content { get; set; }
        }
    }
}

check the GITHUB project我试试这个,我认为问题是:模型需要一个Key,所以,添加一个id,我认为你的数据库上的表有更多的列,请在链接上尝试项目。