1

私はソリューションにいくつかのプロジェクトを持っています。それらのプロジェクトの 1 つである MyDAL は、多数のビジネス オブジェクトを定義し、Entity Framework を使用してそれらを永続化します。

public class MyContext : DbContext

ソリューションに新しいプロジェクトを追加したばかりで、Entity Framework を参照するのを忘れていました。

MyContextはまだ利用可能です! コンパイル エラーはありません (DbContext を定義するアセンブリへの参照がないことを示すコンパイラ エラーが発生すると思います)。

で独自のプロパティを参照できますMyContext。でも、

using (MyContext ctx = new MyContext())

コンパイラエラーを与える

'MyNs.MyContext': using ステートメントで使用される型は、'System.IDisposable' に暗黙的に変換可能でなければなりません

ctx.SaveChanges();

エラーを与える

「MyNs.MyContext」には「SaveChanges」の定義が含まれておらず、拡張メソッド「SaveChanges」は...の最初の引数を受け入れません

コンパイラが静かに変更されたかのようです

public class MyContext : DbContext

public class MyContext : object

エラーを解決する方法 (欠落している参照を追加する) はわかっていますが、DbContext のメソッドとインターフェイスの参照を開始する前に、コードが最初にコンパイルされた理由について知りたいです。

4

0 に答える 0