我想要实现的目标非常简单。我想要一个本地数据库文件,通过使用Entity Framework,我可以从列表视图中显示记录。问题是,每次我构建它时,我都会收到此错误:
' DiaryEntities'不包含'标题'的定义没有延伸方法'标题'接受类型' DiaryEntities'的第一个论点。可以找到(你错过了使用指令或程序集引用吗?)
我的数据库名为Diary
,我只有一个名为Entries
的表,其中包含Title
,Date
和Content
列。这是我的文件:
//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;
答案 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,我认为你的数据库上的表有更多的列,请在链接上尝试项目。