私はソリューションにいくつかのプロジェクトを持っています。それらのプロジェクトの 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 のメソッドとインターフェイスの参照を開始する前に、コードが最初にコンパイルされた理由について知りたいです。