【发布时间】:2018-04-24 14:03:53
【问题描述】:
我想要实现的目标非常简单。我只想拥有一个本地数据库文件,我可以通过使用实体框架在列表视图中显示记录。问题是,每次构建它时,我都会收到此错误:
“DiaryEntities”不包含“Title”的定义,并且找不到接受“DiaryEntities”类型的第一个参数的扩展方法“Title”(您是否缺少 using 指令或程序集引用?)
我的数据库名为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; }
}
}
【问题讨论】:
-
显示Entries的模型,并更改: public virtual DbSet
Diary { get;放; } to public DbSet Diary { get;放; } -
您的
DbSet<>应该将实体类型作为通用参数,而不是上下文本身的类型 (DbSet<Diary>?) -
@haim770 如果我将 Diary 放在 DbSet 中,那么我会得到“找不到类型或命名空间 Diary”
-
@hanoc salinas 我得到了相同的输出
-
您需要一个与数据库中的表具有相同属性的实体(类),然后在 dbSet 上您需要更改我最后的评论方式
标签: c# database visual-studio entity-framework