問題タブ [code-first]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - コードファーストEF4における多対多の関係
EF4 Code-First CTP3で多対多の関係をどのように表現しますか?
たとえば、次のクラスがある場合:
データベースには、ユーザー用のFKとプロファイル用のFKを持つUserProfilesテーブルがあります。どうすればこれをマッピングできますか?
ICollection<User>
編集:私は現在、にプロパティを持ってマップする方法を理解していますProfile
が、「ユーザーは多くのプロファイルを持っている」はずのときに反対のナビゲーションプロパティを持ちたくありません。
c# - Entity Framework v4 コードのみの接続文字列
私は最近、取り組んでいるいくつかのプロジェクトで EF v4 Code Only ライブラリを使い始めました。しかし、私はちょっとした障害に遭遇しました。接続文字列の適切な形式を理解できないようです。次のコードを使用して接続文字列を作成しました。
ただし、これを使用すると、次のエラーが発生します。
私はメタデータを持っていないので...コードのみを使用しているので、少し困っています。どんな洞察も大歓迎です。
ビルダー クラスによって生成される接続文字列は次のとおりです。
provider=System.Data.SqlClient;provider connection string="Data Source=localhost;Initial Catalog=ASM_Testing;Integrated Security=True;Pooling=False"
実施例(受け入れられた回答に基づく)
コードのみのモードを使用するコンテキストのインスタンスを作成するには、ContextBuilder を使用する必要があります。同じ問題に対する答えを探している人のために、これの実例を次に示します。
mysql - EntityFramework4およびコードファースト開発CTPでのMySqlの使用
Entity Framework4を使用したコードファースト開発に関するScottGuthrieの最新の投稿を少し試してみようと思いました。SQLServerを使用する代わりに、MySqlを使用しようとしています。これが私のweb.configの関連部分です(これはAsp.Net MVC 2アプリです):
チュートリアルと同じように、EF4が自動的にデータベースを生成することを期待しています。代わりに、NerdDinnersデータベースが存在しないことを通知する内部例外を使用して、ProviderIncompatibleExceptionをスローします。
けっこうだ; 動作するかどうかを確認するためにMySqlデータベースを作成し、代わりに別のProviderIncompatibleExceptionを取得しました。今回は、「DatabaseExistsはプロバイダーによってサポートされていません」。
確かに、これは私がEntity Frameworkを実際に掘り下げているのは初めてであり(私は主にLinq to Sqlに固執しています)、これはすべて先週リリースされたCode-FirstCTPで実行されています。そうは言っても、私がここで間違っていること、または回避できる既知の問題はありますか?
c# - Entity Framework 4 Code First カスタム テーブル マッピング Fluent API の問題
最初の簡単な背景: Entity Framework v1 を使用する既存の ASP.NET MVC 1 アプリケーションはかなりうまく機能しますが、40 個のテーブルに到達するため、.edmx は扱いにくくなり、Visual Studio 2008 デザイナーで破損する傾向があります。私がやりたいことは、DAL を移行して EF4 と Code-First を使用できるかどうかを確認することです。
最初は、単純な親子関係をモデル化しようとしていますが、あまり進んでいません。次の POCO クラスに対応する2 つのテーブルがClient
あります。Address
さらにDbContext
、流暢な API を使用して関係を定義するクラスがあります。
したがって、コントローラーでは、次をモデルとして返すことができます。
およびのデフォルトAddress
オブジェクトを返すことを除けば、期待どおりにデータベースから 10 個の結果を返します。Client.WorkAddress
Client.HomeAddress
私の推測ではObjectContext.ContextOptions.LazyLoadingEnabled = true
、間違った場所に設定しているか、(より可能性が高い) と の間の関係Client
をAddress
正しく取得していません。
entity-framework - EntityFramework4コード-最初の長所と短所
EF4コードファーストアプローチを使用することの長所と短所を知りたいです。遅延読み込み、関連エンティティの読み込みなど、EF4で生成されたクラスが提供するすべての機能を複製できますか?
ありがとう
entity-framework - コードファーストエンティティフレームワーク-SQLCEDBの作成中にエラーが発生しました
私は、ScottGuthrieによるこのチュートリアルとScottHanselmanによる別のチュートリアルのようにCode-FirstでEntityFramework CTPを使用しています(リンクを投稿することはできませんが、Google "Simple Code First with Entity Framework 4-Magic Unicorn Feature CTP 4")。これはメインのMVCアプリケーションで完全に機能していますが、別のSQLCEデータベースを使用するテストプロジェクトを追加しようとしています。
App.Configファイルに以下を追加しました。
ただし、テストを実行しようとすると、データベースを作成しようとすると次のエラーがスローされます。
テストメソッドMyProjet.Tests.Administration.ModlelTests.Business.TestGetBusinessesListが例外をスローしました:System.Reflection.TargetInvocationException:呼び出しのターゲットによって例外がスローされました。---> System.TypeInitializationException:「System.Data.SqlServerCe.SqlCeProviderServices」の型初期化子が例外をスローしました。---> System.Security.VerificationException:操作によってランタイムが不安定になる可能性があります。
次のスタックトレースを使用します。
System.Data.SqlServerCe.SqlCeProviderServices..ctor()System.Data.SqlServerCe.SqlCeProviderServices..cctor()System.RuntimeFieldHandle.GetValue(RtFieldInfo field、Object instance、RuntimeType fieldType、RuntimeType declaringType、Boolean&domainInitialized)System.Reflection.RtFieldInfo .InternalGetValue(Object obj、Boolean doVisibilityCheck、Boolean doCheckConsistency)System.Reflection.RtFieldInfo.InternalGetValue(Object obj、Boolean doVisibilityCheck)System.Reflection.RtFieldInfo.GetValue(Object obj)System.Data.SqlServerCe.ExtensionMethods.SystemDataSqlServerCeSqlCeProvider Data.SqlServerCe.ExtensionMethods.SystemDataSqlServerCeSqlCeProviderServices_Instance()System.Data.SqlServerCe.SqlCeProviderFactory.System.IServiceProvider.GetService(Type serviceType)System.Data。Common.DbProviderServices.GetProviderServices(DbProviderFactory factory)System.Data.Common.DbProviderServices.GetProviderServices(DbConnection connection)System.Data.Entity.ModelConfiguration.Internal.Configuration.CodeFirstCachedMetadataWorkspace.GetMetadataWorkspace(DbConnection storeConnection)System.Data.Entity.Infrastructure.DbModel .CreateObjectContext [TContext](DbConnection originalConnection)System.Data.Entity.Internal.LazyInternalContext.InitializeFromModel(DbModel model)System.Data.Entity.Internal.LazyInternalContext.InitializeContext()System.Data.Entity.Internal.InternalContext.Initialize() System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)System.Data.Entity.Internal.Linq.EfInternalQueryGetProviderServices(DbProviderFactoryファクトリ)System.Data.Common.DbProviderServices.GetProviderServices(DbConnection connection)System.Data.Entity.ModelConfiguration.Internal.Configuration.CodeFirstCachedMetadataWorkspace.GetMetadataWorkspace(DbConnection storeConnection)System.Data.Entity.Infrastructure.DbModel.CreateObjectContext [TContext ](DbConnection originalConnection)System.Data.Entity.Internal.LazyInternalContext.InitializeFromModel(DbModel model)System.Data.Entity.Internal.LazyInternalContext.InitializeContext()System.Data.Entity.Internal.InternalContext.Initialize()System.Data。 Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)System.Data.Entity.Internal.Linq.EfInternalQueryGetProviderServices(DbProviderFactoryファクトリ)System.Data.Common.DbProviderServices.GetProviderServices(DbConnection connection)System.Data.Entity.ModelConfiguration.Internal.Configuration.CodeFirstCachedMetadataWorkspace.GetMetadataWorkspace(DbConnection storeConnection)System.Data.Entity.Infrastructure.DbModel.CreateObjectContext [TContext ](DbConnection originalConnection)System.Data.Entity.Internal.LazyInternalContext.InitializeFromModel(DbModel model)System.Data.Entity.Internal.LazyInternalContext.InitializeContext()System.Data.Entity.Internal.InternalContext.Initialize()System.Data。 Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)System.Data.Entity.Internal.Linq.EfInternalQueryModelConfiguration.Internal.Configuration.CodeFirstCachedMetadataWorkspace.GetMetadataWorkspace(DbConnection storeConnection)System.Data.Entity.Infrastructure.DbModel.CreateObjectContext [TContext](DbConnection previousConnection)System.Data.Entity.Internal.LazyInternalContext.InitializeFromModel(DbModel model)System.Data。 Entity.Internal.LazyInternalContext.InitializeContext()System.Data.Entity.Internal.InternalContext.Initialize()System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)System.Data.Entity.Internal.Linq.EfInternalQueryModelConfiguration.Internal.Configuration.CodeFirstCachedMetadataWorkspace.GetMetadataWorkspace(DbConnection storeConnection)System.Data.Entity.Infrastructure.DbModel.CreateObjectContext [TContext](DbConnection previousConnection)System.Data.Entity.Internal.LazyInternalContext.InitializeFromModel(DbModel model)System.Data。 Entity.Internal.LazyInternalContext.InitializeContext()System.Data.Entity.Internal.InternalContext.Initialize()System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)System.Data.Entity.Internal.Linq.EfInternalQueryInternal.LazyInternalContext.InitializeFromModel(DbModel model)System.Data.Entity.Internal.LazyInternalContext.InitializeContext()System.Data.Entity.Internal.InternalContext.Initialize()System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) System.Data.Entity.Internal.Linq.EfInternalQueryInternal.LazyInternalContext.InitializeFromModel(DbModel model)System.Data.Entity.Internal.LazyInternalContext.InitializeContext()System.Data.Entity.Internal.InternalContext.Initialize()System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) System.Data.Entity.Internal.Linq.EfInternalQuery
1.Initialize() System.Data.Entity.Internal.Linq.EfInternalQuery
1.Include(String path)System.Data.Entity.Infrastructure.DbQuery`1.Include(String path)MyProjet.Areas.Administration.Models.BusinessModel.GetBusinesses()in D:\ projects2010 \ MyProjet \ MyProjet \ Areas \ Administration \ Models \ BusinessModel.cs:行47 MyProjet.Tests.Administration.ModlelTests.Business.TestGetBusinessesList()in D:\ projects2010 \ MyProjet \ MyProjet.Tests \ Administration \ ModlelTests \ Business.cs:行45
MVCアプリケーションで既存のMyData接続文字列を置き換えてみましたが、正常に機能します。これがテストプロジェクトに追加された場合にのみ、この問題が発生します。さらに、SQLまたはSQL Expressデータベースを指定すると、テストプロジェクトは問題なく機能します。
しばらくの間これに苦労していて、それを理解することができません。簡単なことを見落としていると思います。
entity-framework-4 - Entity Frame 4.0 Code First CTP4 で非主キーのコレクションをマップするにはどうすればよいですか?
既存のレガシー データベースをマップしようとすると問題が発生します。この例では、国に多くの都市があります。
問題は、City テーブルの外部キーが Country テーブルの主キーではないことです。
テーブル定義
このようなことをしようとしていますが、例外が発生します。
「結合テーブル 'CD_Country' へのナビゲーション プロパティ 'Country' のマッピングは無効です。タイプ 'Test_SOLEF.City' の各キー プロパティは、マッピングに 1 回だけ含める必要があります。」
entity-framework - Entity Framework 4 - Code First がベース テーブルとは別に継承されたテーブルを格納しない
EF Code First CTP 4 を使用して、単純なプロジェクトを作成しました。このプロジェクトは 2 つのクラスで構成され、一方は他方から継承されます。
データを別々のテーブルに保存したいのですが、EF 4 のデフォルトでは、これら 2 つのエンティティを同じテーブルにマップ/保存します。
を使用.ToTable()
すると、この動作を変更できますが、これには副作用があります。継承されたオブジェクトを永続化すると、EF は基本クラスの共通の値 (ID など) を永続化しません。
マッピングにいくつかの情報を設定するために出発していると確信していますが、どれがわかりません。
c# - Entity Framework CTP4 - スキーマ間の外部キー マッピングが正しく機能しません。バグ?
別のスキーマ内の他のテーブルへの外部キーを持つテーブルに問題があります。
たとえば、SchemaA の TableA には、SchemaB の TableB への外部キーがあります。CTP4 がデータベースを作成するとき、TA から TB への外部キーを作成する代わりに、TableA_ID と TableB_ID 列を持つ 3 番目のテーブル "TableA_TableB" を作成します。
上記のコードから .ToTable.. を削除すると、テーブルが正しく作成されます。
解決策を探してみましたが、何も見つかりませんでした。私が間違っていること、またはこれはバグですか?
c# - ドメインモデリングの質問
私が取り組んでいるサイトには、ユーザーとサイトの概念があります。ユーザーはグローバル サイトに参加し、(www.globalsite.com/minisite) 内にミニ サイトを作成できます。ユーザーは、他のユーザーが作成した他のミニ サイトをフォローすることもできます。Twitter で、1 つの資格情報セットで参加して、@personal 用、@business 用などの別のアカウントを作成できるとします。
私はEF CTP4を使用しており、最初にコードを使用しています。モデルを正しく設計しているかどうかはわかりません。
そして、ここに私のマッピングがあります:
これは正しいですか、それとも別の方法でモデル化する必要がありますか? 以前は、次のものを使用して手動で関係をマッピングしていました。
構文ですが、CPT4 にアップグレードしたため、機能しなくなりました。EF が DB に SiteFolling_UserFollowing という名前の関係テーブルを SiteId と UserId で作成することを期待していましたが、SiteId(PK) と UserId(FK) で Site_User テーブル、Following_Id(PK) と Site_Id(FK) で Follow_Site、Following_User を作成しました。次の_Id(PK) と User_Id(FK) を持つテーブル。
どんなガイダンスも素晴らしいでしょう、ありがとう!