タグ付けされた質問 「entity-framework」

ADO.NET Entity Framework、.NET Framework用のObject-Relational-Mapping(ORM)ツールに関する質問。該当する場合は、バージョン固有のタグを追加してください。Entity-Framework-coreの質問には、このタグを使用しないでください。代わりにentity-framework-coreを使用してください。

14
エンティティはLINQ to Entitiesクエリで作成できません
エンティティフレームワークによって生成される製品と呼ばれるエンティティタイプがあります。私はこのクエリを書きました public IQueryable<Product> GetProducts(int categoryID) { return from p in db.Products where p.CategoryID== categoryID select new Product { Name = p.Name}; } 以下のコードは次のエラーをスローします: "エンティティまたは複合タイプShop.ProductはLINQ to Entitiesクエリで作成できません" var products = productRepository.GetProducts(1).Tolist(); しかし、select p代わりに使用するとselect new Product { Name = p.Name};、正しく動作します。 どうすればカスタム選択セクションを実行できますか?

25
datetime2データ型をdatetimeデータ型に変換すると、範囲外の値になります
5つの列を持つデータテーブルがあり、行にデータが入力され、トランザクションを介してデータベースに保存されます。 保存中にエラーが返されます: datetime2データ型からdatetimeデータ型への変換の結果、範囲外の値が発生しました これは、読んだとおり、私のデータテーブルにはのタイプがDateTime2あり、私のデータベースにはがあることを意味しますDateTime。それは間違いです。 日付列は次のDateTimeように設定されています。 new DataColumn("myDate", Type.GetType("System.DateTime")) 質問 これはコードで解決できますか、それともデータベースレベルで何かを変更する必要がありますか?

7
エンティティフレームワーク-複数レベルのプロパティを含める
Include()メソッドは、オブジェクトのリストに対して非常にうまく機能します。しかし、もし私が2つのレベルを深く掘り下げる必要がある場合はどうなりますか?たとえば、以下のメソッドは、ここに示されているプロパティを含むApplicationServerを返します。ただし、ApplicationsWithOverrideGroupは、他の複雑なオブジェクトを保持する別のコンテナーです。そのプロパティでInclude()も実行できますか?または、そのプロパティを完全にロードするにはどうすればよいですか? 今のところ、このメソッドは: public IEnumerable<ApplicationServer> GetAll() { return this.Database.ApplicationServers .Include(x => x.ApplicationsWithOverrideGroup) .Include(x => x.ApplicationWithGroupToForceInstallList) .Include(x => x.CustomVariableGroups) .ToList(); } Enabledプロパティ(下記)のみを入力し、ApplicationまたはCustomVariableGroupプロパティ(以下)は入力しません。これを実現するにはどうすればよいですか? public class ApplicationWithOverrideVariableGroup : EntityBase { public bool Enabled { get; set; } public Application Application { get; set; } public CustomVariableGroup CustomVariableGroup { get; set; } }

9
多対多の関係でICollectionを使用し、IEnumerableまたはList <T>を使用しないのはなぜですか?
これは、ナビゲーションプロパティがのチュートリアルでよく見られICollection&lt;T&gt;ます。 これはEntity Frameworkの必須要件ですか?使用できますIEnumerableか? ICollection代わりに、IEnumerableあるいはさらに使用する主な目的は何List&lt;T&gt;ですか?

30
エラーメッセージ '要求されたタイプの1つ以上をロードできません。詳細については、LoaderExceptionsプロパティを取得してください。
Entity Framework、SQL Server 2000、Visual Studio 2008、およびEnterprise Library を使用してアプリケーションを開発しました。 ローカルでは問題なく動作しますが、プロジェクトをテスト環境にデプロイすると、次のエラーが発生します。 要求されたタイプの1つ以上をロードできません。詳細については、LoaderExceptionsプロパティを取得してください スタックトレース:System.Reflection.Module._GetTypesInternal(StackCrawlMark&stackMark) System.Reflection.Assembly.GetTypes()で System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.LoadTypesFromAssembly(LoadingContext context)で System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.InternalLoadAssemblyFromCache(LoadingContext context)で System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.LoadAssemblyFromCache(Assembly assembly、Boolean loadReferencedAssemblies、Dictionary 2 knownAssemblies, Dictionary2&typesInLoading、List`1&errors)で System.Data.Metadata.Edm.ObjectItemCollection.LoadAssemblyFromCache(ObjectItemCollection objectItemCollection、Assembly assembly、Boolean loadReferencedAssemblies)で System.Data.Metadata.Edm.ObjectItemCollection.LoadAssemblyForType(Type type)で System.Data.Metadata.Edm.MetadataWorkspace.LoadAssemblyForType(Type type、Assembly callingAssembly)で System.Data.Objects.ObjectContext.CreateQuery [T](String queryString、ObjectParameter [] parameters)で Entity Frameworkに問題があるようです、それを修正する方法の手がかりはありますか?

3
TransactionsまたはSaveChanges(false)とAcceptAllChanges()を使用していますか?
私はトランザクションを調査してきましたが、エラーがなければ、私が渡しfalseてSaveChanges()呼び出しを行う限り、EFでトランザクションを処理しているようAcceptAllChanges()です。 SaveChanges(false); // ... AcceptAllChanges(); 問題が発生した場合はどうなりますか?ロールバックする必要はありませんか、またはメソッドがスコープから外れるとすぐに、トランザクションは終了しますか? トランザクションの途中で割り当てられたインディティカラムはどうなりますか?私が悪くなる前に誰かが私の後にレコードを追加したとしたら、これはID値が欠落していることを意味します。 TransactionScopeコードで標準クラスを使用する理由はありますか?

17
Entity Frameworkを使用してSQL Serverデータベースへの変更を保存中に、1つ以上のエンティティの検証が失敗しました
編集をデータベースに保存したいのですが、ASP.NET MVC 3 / C#でEntity FrameWork Code-Firstを使用していますが、エラーが発生します。私のイベントクラスでは、DateTimeデータ型とTimeSpanデータ型がありますが、データベースでは、それぞれDateとTimeがあります。これが理由でしょうか?変更をデータベースに保存する前に、コードで適切なデータ型にキャストするにはどうすればよいですか。 public class Event { public int EventId { get; set; } public int CategoryId { get; set; } public int PlaceId { get; set; } public string Title { get; set; } public decimal Price { get; set; } public DateTime EventDate { …

7
特にパフォーマンスに関して、GUIDを主キーとして使用するためのベストプラクティスは何ですか?
ほとんどすべてのテーブルで主キーとしてGUIDを使用するアプリケーションがあり、GUIDを主キーとして使用するとパフォーマンスに関する問題があることを読みました。正直なところ、問題はありませんでしたが、新しいアプリケーションを開始しようとしていて、GUIDを主キーとして使用したいのですが、複合主キー(GUIDと別のフィールド)を使用することを考えていました。 。) 「本番」、「テスト」、「開発」データベースなどの異なる環境があり、データベース間のデータの移行にも適しているため、GUIDを使用しています。 Entity Framework 4.3を使用し、データベースに挿入する前に、アプリケーションコードでGuidを割り当てたいと思います。(つまり、SQLにGuidを生成させたくありません)。 このアプローチに関連する想定されるパフォーマンスへの影響を回避するために、GUIDベースの主キーを作成するためのベストプラクティスは何ですか?

30
エンティティフレームワーク:「ストアの更新、挿入、または削除ステートメントが予期しない行数(0)に影響しました。」[閉まっている]
閉まっている。この質問にはデバッグの詳細が必要です。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 2年前休業。 この質問を改善する Entity Frameworkを使用してグリッドコントロールにデータを入力しています。更新を行うと、次のエラーが発生することがあります。 ストアの更新、挿入、または削除ステートメントは、予期しない行数(0)に影響を与えました。エンティティが読み込まれた後に、エンティティが変更または削除された可能性があります。ObjectStateManagerエントリを更新します。 これを再現する方法がわかりません。しかし、それは私がどれほど近づいて更新を行うかに関係があるかもしれません。誰かがこれを見たことがありますか、または誰かがエラーメッセージの意味を知っていますか? 編集:残念ながら、このプロジェクトから離れて、最終的に解決策を見つけたのか、別の開発者が修正したのか、または私がそれを回避したのか覚えていないため、ここで抱えていた問題を再現する自由はありません。そのため、一切お答えできません。

7
エンティティフレームワークのタイムアウト
完了までに30秒以上かかる関数のインポートを使用すると、Entity Framework(EF)を使用してタイムアウトが発生します。私は以下を試しましたが、この問題を解決できませんでした: ここで提案されているように、EDMXファイルを持つプロジェクトのApp.ConfigファイルのDefault Command Timeout=300000接続文字列に追加しました。 これは私の接続文字列は次のようになります。 &lt;add name="MyEntityConnectionString" connectionString="metadata=res://*/MyEntities.csdl|res://*/MyEntities.ssdl| res://*/MyEntities.msl; provider=System.Data.SqlClient;provider connection string=&amp;quot; Data Source=trekdevbox;Initial Catalog=StarTrekDatabase; Persist Security Info=True;User ID=JamesTKirk;Password=IsFriendsWithSpock; MultipleActiveResultSets=True;Default Command Timeout=300000;&amp;quot;" providerName="System.Data.EntityClient" /&gt; 私のリポジトリでCommandTimeoutを次のように直接設定してみました: private TrekEntities context = new TrekEntities(); public IEnumerable&lt;TrekMatches&gt; GetKirksFriends() { this.context.CommandTimeout = 180; return this.context.GetKirksFriends(); } EFがタイムアウトしないようにするには、他に何ができますか?これは非常に大きなデータセットでのみ発生します。すべてが小さなデータセットで正常に動作します。 ここに私が得ているエラーの一つがあります: System.Data.EntityCommandExecutionException:コマンド定義の実行中にエラーが発生しました。詳細については、内部の例外を参照してください。---&gt; System.Data.SqlClient.SqlException:タイムアウトの期限が切れました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。 OK-私はこれを動作させました、そしてそれは起こったことはばかげています。接続文字列とDefault Command Timeout=300000CommandTimeoutの両方を180に設定しDefault Command …

21
Entity Frameworkで複数の行を削除するにはどうすればよいですか(foreachなし)
Entity Frameworkを使用して、テーブルからいくつかのアイテムを削除しています。外部キー/親オブジェクトがないため、OnDeleteCascadeではこれを処理できません。 今私はこれをやっています: var widgets = context.Widgets .Where(w =&gt; w.WidgetId == widgetId); foreach (Widget widget in widgets) { context.Widgets.DeleteObject(widget); } context.SaveChanges(); それは機能しますが、foreachは私を悩ませます。EF4を使用していますが、SQLを実行したくありません。私は何も逃していないことを確認したいだけです-これはそれで十分ですよね?拡張メソッドまたはヘルパーを使用して抽象化できますが、どこかでforeachを実行する予定ですよね?

12
Enqity Frameworkを使用したLinq to SQLのDateTime型で時間なしの日付のみを比較するにはどうすればよいですか?
で2つのDateTime変数を比較する方法はありますLinq2Sqlが、時間の部分は無視します。 アプリはDBにアイテムを保存し、公開日を追加します。正確な時刻を保持したいが、それでも日付自体を取得できるようにしたい。 私は比較したい12/3/89 12:43:34と12/3/89 11:22:12し、これらの両方が同じと考えられているので、それはその日の実際の時間を無視しています。 00:00:00比較する前にすべての時刻を設定できると思いますが、実際には時刻だけを知りたいのですが、日付のみで比較できるようにしたいのです。 同じ問題のあるコードを見つけ、年、月、日を個別に比較しました。これを行うより良い方法はありますか?

2
Entity Framework 4.1 Code Firstのクラスプロパティを無視する
私の理解では、この[NotMapped]属性は現在CTPにあるEF 5まで利用できないため、本番環境では使用できません。 EF 4.1のプロパティを無視するようにマークするにはどうすればよいですか? 更新:私は何か他の奇妙なことに気づきました。私は[NotMapped]属性を機能させましたが、何らかの理由で、EF 4.1はでpublic bool Disposed { get; private set; }マークされていても、データベースにDisposedという名前の列を作成します[NotMapped]。クラスIDisposeableはもちろん実装しますが、それがどのように重要であるかはわかりません。何かご意見は?

14
エンティティフレームワークの移行のリセット
私は私のマイグレーションをマックアップしました、私は使用しました IgnoreChangesました。最初の移行でましたが、すべての移行を削除して、すべてのロジックした初期移行から始めたいと思います。 フォルダー内の移行を削除して試してAdd-Migrationも、完全なファイルが生成されない場合(空です-最後から変更を加えていないため、現在は移行を削除しています)。 あらゆるあります無効に-移行コマンドは、ので、私は再実行することができますかEnable-Migrations?


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.