0
Cross posted on MSDNエンティティセットはエンティティコンテナで定義されていない
我々は、マニュアルコードを使用System.Data.Sqlite
のための最初のEntity Frameworkの新しいエンティティを作成するときに、我々は、手動でテーブルを作成し、C#のオブジェクトを作成し、DbSetをコンテキストに追加します。
非常に単純なオブジェクトが作成されており、コンテキストを照会しようとするとこのエラーが発生します。何度も列名とデータ型をチェックしましたが、ここで不一致は見られません。フィールドには名前にidが含まれていても、外部キー関係は定義されていません。スタンドアロンのテーブル。
私がコンテクストに新しいエンティティを追加して変更を保存し、それがdbに保存されるというのは、最も奇妙な部分です。しかし、次の行でエンティティを取得しようとすると、私はThe entity set is not defined in the entity container
エラーを受け取ります。インスタンス化されたコンテキストにカーソルを置くと、他のすべてのdbセットにはSELECT EXTENT1.myCol as myCol
などのEF SQLがありますが、department_resources
セットはちょうど{System.Data.Entity.DbSet<department_resource>}
と表示されています。
問題の原因は何ですか?
以下は私のファイルの抜粋です:
[Table("department_resources")]
public class department_resource
{
[Key]
public string dep_res_key { get; set; }
public int department_id { get; set; }
public int resource_id { get; set; }
}
MyContext.cs
CREATE TABLE department_resources (
dep_res_key VARCHAR PRIMARY KEY,
department_id INT NOT NULL,
resource_id INT NOT NULL);
department_resource.cs
DDL
public class MyContext : DbContext
{
public DbSet<department_resource> department_resources { get; set; }
}
使用例
using (MyContext db = new MyContext())
{
db.department_resources.Add(new department_resource()
{ dep_res_key = "anID",
resource_id = 22,
department_id = 23 }); // Works
db.SaveChanges(); // Also works. Even persists to db
var foo = from r in db.department_resources
select r.resource_id; // Doesn't work. Will error as soon as I try to use foo. Like assigning to a combo box item source. Or even just enumerating the results
var bar = db.department_resources; // Also doesn't work.
}
データベースをチェックインしましたか?これは保存されています – Eldho
はいそれはdbに保存されています – wesmantooth
新しいデータベースコンテキスト 'using(MyContext db = new MyContext())を起動し、この新しいコンテキストの内部を取得しようとしてください。 – Eldho