C# - 实体类型(实体)不是Windows Form Application with SQL Database中当前上下文错误的模型的一部分

时间:2015-07-16 09:08:32

标签: c# entity-framework

我正在处理一个项目,该项目只需填写一串文本框并单击一个按钮,该按钮将文本框中的值添加到类的新实例中的各自变量中,并保存此实例数据库中的类。

我首先创建了数据库并使用Entity Frameworks从中创建了类,所以我知道它们是相互链接的。 我班级的一般代码如下所示:

public partial class AnaestheticRecord
{
    public int PatientID { get; set; }
    public System.DateTime Date { get; set; }
    public string Owner_Name { get; set; }
//25 other attributes of class
...
    //methods------------------------------------------------
    //get number of instances of class (objects + 1 creates new PatientID)

    private static int objects = 0;

    public AnaestheticRecord()
    {
        ++objects; //add one to count
    }

    ~AnaestheticRecord()
    {
        --objects; //remove one from count
    }

    public static int getPatientID()
    {
        objects += 1;   //add 1 more to create previously unused value
        return objects; //return new value
    }

因此,当需要添加代码来生成应用程序函数时,我首先声明了上面显示的类的新实例,以及应允许访问数据库的Entities类...

public partial class Form1 : Form
{

    //empty instance of class, each property takes data through console input
    AnaestheticRecord aRecord = new AnaestheticRecord(); //create new instance of anaesthetic record class ready for data input
    List<AnaestheticRecord> recordCollection = new List<AnaestheticRecord>(); //create list to store instances of anaesthetic records (display-record purposes)
    BlueBookDBEntities db = new BlueBookDBEntities(); //create entities to run database

这一切都运行正常,但是一旦填写了一系列文本框并单击按钮将此记录添加到数据中,将运行以下代码并生成错误:

    private void btnSaveRecord_Click(object sender, EventArgs e)
    {
        //transfer and convert values from input to respective field in record
        addToClass();
        recordCollection.Add(aRecord); //add completed instance of class to list
        db.TblAnaestheticRecords.Add(aRecord); //add completed anaesthetic record to database (ERROR)
        db.SaveChanges(); //save new input to database
    }

此时,行&#39; db.TblAnaestheticRecords.Add(aRecord)&#39;抛出错误声明&#34;实体类型AnaestheticRecord不是当前上下文的模型的一部分&#34;。

我有点卡在这里,因为我无法看清我做错了什么。在使用MVC之前我已经完成了这类工作,其中为您完成了更多的基础工作,但这是我第一次使用链接到Windows窗体应用程序的数据库。 如果有人能指出我哪里出错了,并且可能指出我正确的方向如何克服这个错误,我会非常感激。

谢谢, 标记

1 个答案:

答案 0 :(得分:0)

在上下文中,您还需要插入AnaestheticRecord DbSet(所有相关表,关系表为1 DbSet)