タグ付けされた質問 「ef-code-first」

EFコードファーストは、モデルファーストまたはDBファーストではなく、POCOクラスでMicrosoftのエンティティフレームワークを使用する方法です。

14
DbContextとSetInitializerを使用してdatetime2の範囲外変換エラーを修正する方法
Entity Framework 4.1で導入されたDbContextおよびCode First APIを使用しています。 データモデルは、などの基本データ型を使用していますstringとDateTime。場合によって使用している唯一のデータ注釈はですが[Required]、それはどのDateTimeプロパティにもありません。例: public virtual DateTime Start { get; set; } DbContextサブクラスはまた、のようなシンプルかつルックスです。 public class EventsContext : DbContext { public DbSet<Event> Events { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<Event>().ToTable("Events"); } } 初期化子は、今年か来年のいずれかで賢明な値にモデルの日付を設定します。 ただし、イニシャライザを実行すると、次の場所でこのエラーが発生しcontext.SaveChanges()ます。 datetime2データ型をdatetimeデータ型に変換すると、値が範囲外になりました。ステートメントは終了されました。 すべてがとても簡単なため、なぜこれが起こっているのか理解できません。編集するedmxファイルがないため、修正方法もわかりません。 何か案は?

25
データベースに名前の付いたオブジェクトがすでに存在します
パッケージマネージャーコンソールからのデータベースの更新に失敗しました。Entity Framework 6.xとコードファーストアプローチを使用しました。エラーは 「データベースにはすでに「AboutUs」という名前のオブジェクトがあります。」 この問題を解決するにはどうすればよいですか? internal sealed class Configuration : DbMigrationsConfiguration<Jahan.Blog.Web.Mvc.Models.JahanBlogDbContext> { public Configuration() { AutomaticMigrationsEnabled = true; AutomaticMigrationDataLossAllowed = false; } protected override void Seed(Jahan.Blog.Web.Mvc.Models.JahanBlogDbContext context) { } } 私のDbContextは: public class JahanBlogDbContext : IdentityDbContext<User, Role, int, UserLogin, UserRole, UserClaim> { public JahanBlogDbContext() : base("name=JahanBlogDbConnectionString") { Database.SetInitializer(new DropCreateDatabaseIfModelChanges<JahanBlogDbContext>()); } …

4
Entity FrameworkのICollection <T>とList <T>
最初にいくつかのEntity Frameworkアプリケーションの設計に取り掛かる前に、私はいくつかのWebキャストだけを見ました。あまりドキュメントを読んでいなかったので、今は苦しんでいるような気がします。 私はList&lt;T&gt;自分のクラスで使用していますが、うまくいきました。 今、私はいくつかのドキュメントを読みました、そしてそれは私が使うべきだったと述べていICollection&lt;T&gt;ます。私はこれに変更しましたが、モデルコンテキストが変更されることすらありませんでした。両方のためですList&lt;T&gt;とICollection&lt;T&gt;継承IEnumerable&lt;T&gt;、それが実際にEFのために必要なものでしょうか? ただし、これが当てはまる場合、EFのドキュメントIEnumerable&lt;T&gt;に、代わりにEFのドキュメントに必要と記載されていないのはなぜICollection&lt;T&gt;ですか? いずれにせよ、私が行ったことにマイナス面はありますか、それとも変更すべきですか?


26
「Update-Database」という用語はコマンドレットの名前として認識されません
私はEF5 beta1を使用していますが、以前は「Update-Database」を実行できました。Visual Studioをシャットダウンしたので、実行できません。次のエラーが発生します。 「Update-Database」という用語は、コマンドレット、関数、スクリプトファイル、または操作可能なプログラムの名前として認識されません。名前のスペルを確認するか、パスが含まれていた場合は、パスが正しいことを確認して、再試行してください。1行目:char:16 + Update-Database &lt;&lt;&lt;&lt; -verbose + CategoryInfo:ObjectNotFound:(Update-Database:String)[]、CommandNotFoundException + FullyQualifiedErrorId:CommandNotFoundException EF5b1を再インストールしようとしましたが、成功しましたが(既にインストールされています)、 'Update-Database'はまだ機能しません。 誰でも手伝ってくれる???

4
エンティティフレームワークのコードファーストのnull外部キー
私が持っているUser&lt; Countryモデル。ユーザーは国に属していますが、どの国にも属していない可能性があります(null外部キー)。 どうすれば設定できますか?国がnullのユーザーを挿入しようとすると、nullにすることはできません。 モデルは次のとおりです。 public class User{ public int CountryId { get; set; } public Country Country { get; set; } } public class Country{ public List&lt;User&gt; 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」もキーにする必要があります。確かに、私はこれをコード化できますが、それは良いデータベース設計ではありません。

6
EntityType 'IdentityUserLogin'にはキーが定義されていません。このEntityTypeのキーを定義します
私はエンティティフレームワークコードファーストとMVC 5を使用しています。個人ユーザーアカウント認証を使用してアプリケーションを作成すると、アカウントコントローラーと、それに加えて、個人ユーザーアカウント認証を機能させるために必要なすべての必要なクラスとコードが与えられました。 すでに配置されているコードには、次のものがあります。 public class ApplicationDbContext : IdentityDbContext&lt;ApplicationUser&gt; { public ApplicationDbContext() : base("DXContext", throwIfV1Schema: false) { } public static ApplicationDbContext Create() { return new ApplicationDbContext(); } } しかし、次に先に進んで、最初にコードを使用して自分のコンテキストを作成したので、次のものも手に入れました。 public class DXContext : DbContext { public DXContext() : base("DXContext") { } public DbSet&lt;ApplicationUser&gt; Users { get; set; } public DbSet&lt;IdentityRole&gt; Roles …

2
MVC3のコードファーストエンティティフレームワーク(4.1)を使用して外部キーの関係を宣言するにはどうすればよいですか?
私は多くの運がなくてもコードファーストEF 4.1を使用して外部キー関係と他の制約を宣言する方法に関するリソースを探していました。基本的に私はコードでデータモデルを構築し、MVC3を使用してそのモデルをクエリしています。すべてが素晴らしいMVCを介して機能します(Microsoftに対してkudos!)。 たとえば、外部オブジェクト(テーブル)である大量のプロパティを持つOrderオブジェクトがあります。現在、問題なく注文を作成できますが、外部キーや外部オブジェクトを追加することはできません。MVC3はこれを問題なく設定します。 保存する前に自分でオブジェクトをコントローラークラスに追加するだけでよいことに気づきましたが、制約関係が満たされていない場合にDbContext.SaveChanges()の呼び出しを失敗させたいと思います。 新情報 したがって、具体的には、顧客オブジェクトを指定せずにOrderオブジェクトを保存しようとしたときに例外が発生するようにしたいと思います。ほとんどのCode First EFドキュメントで説明されているようにオブジェクトを作成しただけでは、これは動作ではないようです。 最新のコード: public class Order { public int Id { get; set; } [ForeignKey( "Parent" )] public Patient Patient { get; set; } [ForeignKey("CertificationPeriod")] public CertificationPeriod CertificationPeriod { get; set; } [ForeignKey("Agency")] public Agency Agency { get; set; } [ForeignKey("Diagnosis")] public Diagnosis PrimaryDiagnosis …

1
同じDB内の複数のDBコンテキストとEF 6のアプリケーションおよびコードファーストの移行
Entity Frameworkは初めてです。EF 6を使用するMVCアプリケーションをセットアップしようとしています。コードファーストマイグレーションを使用しています。アプリでAreasを使用していて、分割するために各エリアに異なるDbContextsを設定したいと考えています。私はEF 6にContextKeyがあることを知っていますが、それを使用する方法に関する完全な情報を見つけることができません。現在、マイグレーションは一度に1つのコンテキストしか使用できません。 私のようなEFに新しい人が理解して使用するのに十分な詳細を備えた例を誰かが示すことができますか?

6
Entity Frameworkのクエリは遅いが、SqlQueryの同じSQLは速い
Entity Framework Code-Firstと.NET Frameworkバージョン4を使用した非常に単純なクエリに関連する、非常に奇妙なパフォーマンスがいくつかあります。LINQ2Entitiesクエリは次のようになります。 context.MyTables.Where(m =&gt; m.SomeStringProp == stringVar); 実行には3000ミリ秒以上かかります。生成されたSQLは非常にシンプルに見えます。 SELECT [Extent1].[ID], [Extent1].[SomeStringProp], [Extent1].[SomeOtherProp], ... FROM [MyTable] as [Extent1] WHERE [Extent1].[SomeStringProp] = '1234567890' このクエリは、Management Studioを通じて実行されると、ほぼ瞬時に実行されます。SqlQuery関数を使用するようにC#コードを変更すると、5〜10ミリ秒で実行されます。 context.MyTables.SqlQuery("SELECT [Extent1].[ID] ... WHERE [Extent1].[SomeStringProp] = @param", stringVar); したがって、まったく同じSQLであり、結果のエンティティはどちらの場合も変更が追跡されますが、2つの場合のパフォーマンスは大きく異なります。何ができますか?

8
Entity Framework移行の必須フィールドのデフォルト値は?
ASP.NET MVCアプリケーションの[Required]モデルの1つにデータアノテーションを追加しました。移行を作成した後、コマンドを実行すると次のエラーが発生します。Update-Database 列「Director」、テーブル「MOVIES_cf7bad808fa94f89afa2e5dae1161e78.dbo.Movies」に値NULLを挿入できません。列はnullを許可しません。UPDATEは失敗します。ステートメントは終了されました。 これは、一部のレコードのDirector列にNULLがあるためです。これらの値をデフォルト(たとえば「John Doe」)のディレクターに自動的に変更するにはどうすればよいですか? これが私のモデルです: public class Movie { public int ID { get; set; } [Required] public string Title { get; set; } [DataType(DataType.Date)] public DateTime ReleaseDate { get; set; } [Required] public string Genre { get; set; } [Range(1,100)] [DataType(DataType.Currency)] public decimal Price { get; set; } …

2
外部キーとしての複合キー
MVC3アプリケーションでEntityFramework4.1を使用しています。主キーが2つの列(複合キー)で構成されているエンティティがあります。そして、これは別のエンティティで外部キーとして使用されています。関係を作成する方法は?通常のscneriosでは以下を使用します: public class Category { public string CategoryId { get; set; } public string Name { get; set; } public virtual ICollection&lt;Product&gt; Products { get; set; } } public class Product { public int ProductId { get; set; } public string Name { get; set; } public string CategoryId { …

6
EFコードナビゲーションプロパティのない最初の外部キー
次のエンティティがあるとしましょう。 public class Parent { public int Id { get; set; } } public class Child { public int Id { get; set; } public int ParentId { get; set; } } ナビゲーションプロパティを必要とせずに、 ParentIdがParentsテーブルへの外部キー制約を使用してデータベースに作成されるようにするためのコードファーストの流暢なAPI構文は何ですか? ナビゲーションプロパティの親を子に追加すると、次のことができることを知っています。 modelBuilder.Entity&lt;Child&gt;() .HasRequired&lt;Parent&gt;(c =&gt; c.Parent) .WithMany() .HasForeignKey(c =&gt; c.ParentId); しかし、この特定のケースでは、ナビゲーションプロパティは必要ありません。

3
Entity Framework Code First FluentAPIを使用してテーブル名を指定する方法
エンティティがあり、別の名前のデータベーステーブルにマップするようにEntityFrameworkを構成します。 これは、Code First DataAnnotations(DataAnnotations.Schema.TableAttribute)を使用して簡単に実行できます。 しかし、制限のため、Code First Fluent APIを使用する必要があります(私のドメインオブジェクトは外部クライアントによって使用されるため、テクノロジー固有のものであってはなりません-たとえば、DataAnnotationsへの参照があります) MSDNで検索しましたが、何も見つかりませんでした。それで、それは可能で、どのようにですか? ありがとうございました。

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