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

このタグは、.NET Frameworkとは別に出荷されるEFの最初のリリースであるADO.NET Entity Framework 4.1用です。.NET 4.0に含まれるコアEntity Frameworkに基づいて構築され、2011年3月に一般公開されました。

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 …

10
コード優先vsモデル/データベース優先[終了]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 12か月前に閉鎖。 Entity Framework 4.1をモデル/データベース優先でEDMXダイアグラムよりコードファーストで使用する場合の長所と短所は何ですか? EF 4.1を使用してデータアクセスレイヤーを構築するためのすべてのアプローチを完全に理解しようとしています。リポジトリパターンとを使用していますIoC。 コードファーストアプローチを使用できることを知っModelBuilderています。エンティティとコンテキストを手動で定義し、スキーマを微調整するために使用します。 EDMX図を作成し、T4テンプレートを使用して同じPOCOクラスを生成するコード生成ステップを選択することもできます。 どちらの場合も、私POCOはORM不可知論的であり、から派生するコンテキストを持つオブジェクトになりますDbContext。 Enterprise Managerでデータベースを設計し、モデルをすばやく同期し、デザイナーを使用して微調整できるので、データベースファーストが最も魅力的なようです。 では、これら2つのアプローチの違いは何ですか?それは単にVS2010対Enterprise Managerの好みについてですか?

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はもちろん実装しますが、それがどのように重要であるかはわかりません。何かご意見は?

6
Entity Framework Code First-同じテーブルからの2つの外部キー
私は最初にEFコードを使い始めたばかりなので、このトピックの完全な初心者です。 チームとマッチの関係を作りたかったのです。 1試合= 2チーム(ホーム、ゲスト)と結果。 そのようなモデルを作成するのは簡単だと思ったので、コーディングを開始しました。 public class Team { [Key] public int TeamId { get; set;} public string Name { get; set; } public virtual ICollection<Match> Matches { get; set; } } public class Match { [Key] public int MatchId { get; set; } [ForeignKey("HomeTeam"), Column(Order = 0)] public int …

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

14
DbContext.Database.ExecuteSqlCommandメソッドにパラメーターを渡す方法は?
Entity Frameworkでsqlコマンドを直接実行する正当なニーズがあるとしましょう。SQLステートメントでパラメーターを使用する方法を理解できません。次の例(実際の例ではありません)は機能しません。 var firstName = "John"; var id = 12; var sql = @"Update [User] SET FirstName = @FirstName WHERE Id = @Id"; ctx.Database.ExecuteSqlCommand(sql, firstName, id); ExecuteSqlCommandメソッドでは、ADO.Netのように名前付きパラメーターを渡すことができません。このメソッドのドキュメントには、パラメーター化されたクエリを実行する方法の例が記載されていません。 パラメータを正しく指定するにはどうすればよいですか?

19
1つ以上の外部キープロパティがnull可能ではないため、関係を変更できませんでした
エンティティでGetById()を実行し、子エンティティのコレクションをMVCビューからの新しいリストに設定すると、このエラーが発生します。 操作が失敗しました:1つ以上の外部キープロパティがnull可能ではないため、関係を変更できませんでした。リレーションシップが変更されると、関連する外部キープロパティはnull値に設定されます。外部キーがnull値をサポートしていない場合は、新しい関係を定義するか、foreign-keyプロパティに別のnull以外の値を割り当てるか、無関係なオブジェクトを削除する必要があります。 私はこの行を完全に理解していません: 1つ以上の外部キープロパティがnull可能ではないため、関係を変更できませんでした。 2つのエンティティ間の関係を変更するのはなぜですか?アプリケーション全体の存続期間を通して、同じままである必要があります。 例外が発生するコードは、コレクション内の変更された子クラスを既存の親クラスに割り当てるだけです。これにより、子クラスの削除、新しいクラスの追加、変更が可能になります。Entity Frameworkがこれを処理すると思ったでしょう。 コード行は、次のように抽出できます。 var thisParent = _repo.GetById(1); thisParent.ChildItems = modifiedParent.ChildItems(); _repo.Save();

6
DbValidationExceptionから正確なエラータイプを取得する
EF 4.1のDatabaseInitializer()でモデルを初期化しているときに、この厄介なエラーが発生するという状況になっている"Validation failed for one or more entities. See 'EntityValidationErrors' property for more details."ので、このEntityValidationErrorsに移動すると、{System.Data.Entity.Validation.DbEntityValidationResult}初期化できなかったフィールドに関する情報がまったくないフィールドがあります。 。このエラーに関する詳細情報を取得する方法はありますか? 物事を片付けるには: 文字列の長さの問題を解決する方法を知っています。私が求めているのは、モデルを壊している正確なフィールド名を取得する方法です。



3
Generic Repository with EF 4.1ポイントは何ですか
DbContext、DbSet、および関連するインターフェースをさらに掘り下げているので、これらの実装の周りに別の「汎用」リポジトリを実装する必要があるのはなぜでしょうか。 DbContextとIDbSetが必要なすべてを行い、DbContext内に「作業単位」を含めるように見えます。 ここに何か欠けているのですか、それとも人々が理由なく別の依存関係の層を追加するのを楽しんでいるように見えますか?

4
Entity Framework 5に子オブジェクトの子オブジェクトを含める方法
とを使用Entity Framework 5 code firstしていASP.NET MVC 3ます。 子オブジェクトの子オブジェクトを作成するのに苦労しています。以下は私のクラスです。 アプリケーションクラス。 public class Application { // Partial list of properties public virtual ICollection<Child> 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 => c.EID, cm => cm.EID, (c, cm) => new { UID = cm.OwnerUID, TID = cm.TID, EID = c.EID, }). Where(a => a.UID == user.UID).Take(10); TID PK を含むtbl_Titleテーブルを含め、タイトルフィールドを取得したいと思います。 どうもありがとう

4
エンティティフレームワークのコードファーストのnull外部キー
私が持っているUser< Countryモデル。ユーザーは国に属していますが、どの国にも属していない可能性があります(null外部キー)。 どうすれば設定できますか?国がnullのユーザーを挿入しようとすると、nullにすることはできません。 モデルは次のとおりです。 public class User{ public int CountryId { get; set; } public Country Country { get; set; } } public class Country{ public List<User> Users {get; set;} public int CountryId {get; set;} } エラー: A foreign key value cannot be inserted because a corresponding primary key value …

2
EF 4.1コードが最初の複合キー
EFコードFirst 4.1 RCを使用して複合キーを作成する方法を理解しようとしています。 現在、[Key] Data Annotationを使用していますが、複数のキーを指定できません。 複合キーをどのように指定しますか? これが私の例です: public class ActivityType { [Key] public int ActivityID { get; set; } [Required(ErrorMessage = "A ActivityName is required")] [StringLength(50, ErrorMessage = "Activity Name must not exceed 50 characters")] public string ActivityName { get; set; } } 「ActivityName」もキーにする必要があります。確かに、私はこれをコード化できますが、それは良いデータベース設計ではありません。

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