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

ADO.NET Entity Framework 4.xのタグ、それ自体が.NETフレームワークのオブジェクトリレーショナルマッピングです。

29
1つ以上のエンティティの検証が失敗しました。詳細については、「EntityValidationErrors」プロパティを参照してください
コードを最初に使用する方法でデータベースをシードするときに、このエラーが発生します。 1つ以上のエンティティの検証が失敗しました。詳細については、「EntityValidationErrors」プロパティを参照してください。 正直なところ、検証エラーの内容を確認する方法がわかりません。Visual Studioは、8つのオブジェクトを含む配列であるため、8つの検証エラーがあることを示しています。 これは以前のモデルで機能していましたが、以下で説明するいくつかの変更を加えました。 Statusという列挙があり、Statusというクラスに変更しました ApplicantsPositionHistoryクラスを変更して、同じテーブルへの2つの外部キーを設定しました 長いコードはすみませんが、すべて貼り付ける必要があります。例外は次のコードの最後の行でスローされます。 namespace Data.Model { public class Position { [DatabaseGenerated(System.ComponentModel.DataAnnotations.DatabaseGeneratedOption.Identity)] public int PositionID { get; set; } [Required(ErrorMessage = "Position name is required.")] [StringLength(20, MinimumLength = 3, ErrorMessage = "Name should not be longer than 20 characters.")] [Display(Name = "Position name")] public string name …

18
このコマンドに関連付けられた開いているDataReaderがすでに存在するため、最初に閉じる必要があります
私はこのクエリを持っていて、この関数でエラーが発生します: var accounts = from account in context.Accounts from guranteer in account.Gurantors select new AccountsReport { CreditRegistryId = account.CreditRegistryId, AccountNumber = account.AccountNo, DateOpened = account.DateOpened, }; return accounts.AsEnumerable() .Select((account, index) => new AccountsReport() { RecordNumber = FormattedRowNumber(account, index + 1), CreditRegistryId = account.CreditRegistryId, DateLastUpdated = DateLastUpdated(account.CreditRegistryId, account.AccountNumber), AccountNumber = FormattedAccountNumber(account.AccountType, …

11
EF移行:最後に適用された移行をロールバックしますか?
これは非常に一般的な作業のように見えますが、簡単な方法が見つかりません。 最後に適用した移行を元に戻したい。私は次のような簡単なコマンドを期待していました PM> Update-Database -TargetMigration:"-1" 代わりに、私が思いつくことができるすべては: PM> Get-Migrations Retrieving migrations that have been applied to the target database. 201208012131302_Add-SystemCategory 201207311827468_CategoryIdIsLong 201207232247409_AutomaticMigration 201207211340509_AutomaticMigration 201207200025294_InitialCreate PM> Update-Database -TargetMigration:"CategoryIdIsLong" (少なくとも、タイムスタンプをスキップして名前だけを使用できます...) もっと簡単な方法はありますか?

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

16
FOREIGN KEY制約を導入すると、サイクルまたは複数のカスケードパスが発生する可能性があります。なぜですか?
私はしばらくこれに取り組んできましたが、何が起こっているのかよくわかりません。サイド(通常は2)を含むカードエンティティがあり、カードとサイドの両方にステージがあります。EF Codefirst移行を使用していますが、このエラーで移行が失敗します。 テーブル 'Sides'にFOREIGN KEY制約 'FK_dbo.Sides_dbo.Cards_CardId'を導入すると、サイクルまたは複数のカスケードパスが発生する可能性があります。ON DELETE NO ACTIONまたはON UPDATE NO ACTIONを指定するか、他のFOREIGN KEY制約を変更します。 これが私のカードエンティティです: public class Card { public Card() { Sides = new Collection<Side>(); Stage = Stage.ONE; } [Key] [Required] public virtual int CardId { get; set; } [Required] public virtual Stage Stage { get; set; } [Required] [ForeignKey("CardId")] …

27
<Da​​tabase>コンテキストを支えるモデルは、データベースが作成されてから変更されました
エラーメッセージ: 「データベースが作成されてから、「AddressBook」コンテキストをバッキングするモデルが変更されています。データベースを手動で削除/更新するか、IDatabaseInitializerインスタンスを使用してDatabase.SetInitializerを呼び出します。たとえば、RecreateDatabaseIfModelChanges戦略は、データベースを自動的に削除して再作成します。オプションで新しいデータをシードします。」 私はコードファースト機能を使用しようとしています、そして私が書いたものは次のとおりです: var modelBuilder = new ModelBuilder(); var model = modelBuilder.CreateModel(); using (AddressBook context = new AddressBook(model)) { var contact = new Contact { ContactID = 10000, FirstName = "Brian", LastName = "Lara", ModifiedDate = DateTime.Now, AddDate = DateTime.Now, Title = "Mr." }; context.contacts.Add(contact); int result = context.SaveChanges(); Console.WriteLine("Result …

2
Entity Framework 4.1 POCO Code Firstでは、仮想キーワードはどのような効果をもたらしますか?
んvirtualEFコードファーストでのプロパティに使用された場合のキーワードは効果があります?。誰かがさまざまな状況でのすべての影響を説明できますか? たとえば、遅延読み込みを制御できることはわかっています。ICollection/ one-to-many関係プロパティでvirtualキーワードを使用すると、デフォルトで遅延読み込みされますが、virtualキーワードを省略した場合は、熱心にロードされます。 virtualPOCOエンティティを使用したEFで、キーワードは他にどのような影響を与える可能性がありますか?virtualすべてのプロパティで使用するようにデフォルトにするか、デフォルトで使用しないようにする必要がありますか?


12
Entity Framework 4 / POCO-どこから始めますか?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 6年前休業。 この質問を改善する 私はしばらくプログラミングをしていて、以前にLINQ-To-SQLおよびLINQ-To-Entitiesを使用していました(ただし、エンティティを使用する場合は、エンティティ/テーブル1-1の関係にあります。つまり、L2SQLとそれほど変わりません)。 私は、制御の反転、作業単位、POCO、およびリポジトリー・パターンについて多くの読書をしてきましたが、この方法論を新しいアプリケーションで使用したいと考えています。 私が苦労しているのは、EF1の知識を前提としない、EF4の明確で簡潔な初心者向けガイドを見つけることです。 私が答える必要がある具体的な質問は次のとおりです。 最初にコード/モデルを最初に?EF4に関する長所/短所(つまり、最初にコードを実行し、後でコードを変更し、DBモデルを再生成する必要がある場合はどうなりますか?データは保持され、変換または削除されますか?) 私がコードファーストになると仮定して(EF4がそれをDBスキーマに変換する方法を確認したいのですが)、実際にどのように開始しますか?エンティティダイアグラムに「これがエンティティモデルなので、次に移動します...」という記事をよく目にします-残念ながら、デザイナーでモデルを作成して保存したかどうかは不明ですコードを生成し、それ以降の自動コード生成を停止しました-または-コード化しました(POCO)?クラスとどういうわけかそれらをdeisgnerビューにインポートしましたか? 私が本当に必要なのは、「魔法」がどこから来ているのか、そしてDBから直接EFモデルを生成するだけではない場合、自分で追加する方法を理解することだと思います。 質問が少し漠然としていることは承知していますが、わからないことはわかりません。入力、修正、説明はありがたいです。 言うまでもなく、誰もここに座ってEFを教えてくれるとは思っていません。良いチュートリアル、フォーラム、ブログなどが欲しいです。完全なエンティティ初心者向け

4
.ToList()、. AsEnumerable()、AsQueryable()の違いは何ですか?
LINQ to EntitiesとLINQ to Objectsの最初の実装IQueryableと2番目の実装の違いがいくつかわかってIEnumerableおり、質問のスコープはEF 5内にあります。 私の質問は、これらの3つの方法の技術的な違いは何ですか?私は多くの状況でそれらすべてが機能することを確認します。のようにそれらを組み合わせて使用​​することもわかり.ToList().AsQueryable()ます。 これらの方法は正確にはどういう意味ですか? パフォーマンスの問題など、どちらか一方をもう一方に使用することにつながるものはありますか? .ToList().AsQueryable()代わりに、例えば、なぜ代わりに使うの.AsQueryable()でしょうか?

11
指定された名前付き接続が構成に見つからないか、EntityClientプロバイダーでの使用を意図していないか、無効です
1つのエンティティフレームワークオブジェクトがあり、プロジェクトにconnectionstring 追加するapp.configと、connectionstringセクションに追加されますが、新規に作成entitycontextしてこれを使用したい場合connectionstring、このエラーが表示されます

8
オブジェクト 'DF __ *'は列 '*'に依存しています-intをdoubleに変更しています
基本的に、EFデータベースに次のプロパティを持つテーブルを取得しました。 public int Id { get; set; } public string Title { get; set; } public string Description { get; set; } public string Image { get; set; } public string WatchUrl { get; set; } public int Year { get; set; } public string Source { get; set; } …

9
指定された型メンバー 'Date'はLINQ to Entitiesではサポートされていません。初期化子、エンティティメンバー、およびエンティティナビゲーションプロパティのみ
Entity Frameworkでこのコードを使用すると、次のエラーが表示されます。特定の日付のすべての行を取得する必要がありDateTimeStartます。この形式のタイプはDataTypeです。2013-01-30 12:00:00.000 コード: var eventsCustom = eventCustomRepository.FindAllEventsCustomByUniqueStudentReference(userDevice.UniqueStudentReference) .Where(x =&gt; x.DateTimeStart.Date == currentDateTime.Date); エラー: base {System.SystemException} = {"指定された型メンバー 'Date'はLINQ to Entitiesではサポートされていません。初期化子、エンティティメンバー、およびエンティティナビゲーションプロパティのみがサポートされています。"} それを修正する方法はありますか?

4
Entity Framework 5に子オブジェクトの子オブジェクトを含める方法
とを使用Entity Framework 5 code firstしていASP.NET MVC 3ます。 子オブジェクトの子オブジェクトを作成するのに苦労しています。以下は私のクラスです。 アプリケーションクラス。 public class Application { // Partial list of properties public virtual ICollection&lt;Child&gt; Children { get; set; } } 子クラス: public class Child { // Partial list of properties public int ChildRelationshipTypeId { get; set; } public virtual ChildRelationshipType ChildRelationshipType { get; …

2
Entity Frameworkの3つのテーブルの結合
3つのテーブルを結合しようとしていますが、方法を理解できません... 2つのテーブルの結合を完了しました var entryPoint = dbContext.tbl_EntryPoint .Join(dbContext.tbl_Entry, c =&gt; c.EID, cm =&gt; cm.EID, (c, cm) =&gt; new { UID = cm.OwnerUID, TID = cm.TID, EID = c.EID, }). Where(a =&gt; a.UID == user.UID).Take(10); TID PK を含むtbl_Titleテーブルを含め、タイトルフィールドを取得したいと思います。 どうもありがとう

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