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

ADO.NET Entity Frameworkバージョン6に関する質問の場合質問がEF6バージョンに限定されていない場合は、汎用の[entity-framework]タグも追加します。

30
Entity Framework Providerタイプをロードできませんでしたか?
現在マシンにインストールされているTeamCityでテストを実行しようとしています。 System.InvalidOperationException: Entity Frameworkプロバイダータイプ ' System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer、Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'' System.Data.SqlClient'のADO.NETプロバイダーを読み込めませんでした。実行中のアプリケーションがプロバイダーアセンブリを使用できることを確認してください。 詳細については、http://go.microsoft.com/fwlink/?LinkId = 260882を参照してください。 System.Data.EntitycodeplexでEF6へのアップグレードについて提案されたように、私はどのプロジェクトでも参照していません。 したがって、なぜこの例外が発生するのかわかりません。VSからテストを実行しても、このような例外は発生しません。 私はCopyLocalをfalseに設定してから、もう一度trueに設定しようとしましたが、それも機能しないようです。 更新 私のapp.configには以下があります。これにより、理解できない動作が発生しますか? <?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> </configSections> <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> </entityFramework> …

17
Entity Framework 6を​​使用してレコードを更新する方法は?
EF6を使用してレコードを更新しようとしています。最初にレコードが見つかったら、それを更新します。これが私のコードです:- var book = new Model.Book { BookNumber = _book.BookNumber, BookName = _book.BookName, BookTitle = _book.BookTitle, }; using (var db = new MyContextDB()) { var result = db.Books.SingleOrDefault(b => b.BookNumber == bookNumber); if (result != null) { try { db.Books.Attach(book); db.Entry(book).State = EntityState.Modified; db.SaveChanges(); } catch (Exception ex) { throw; …

13
Visual StudioサーバーエクスプローラーでLocalDBに接続する方法
1時間検索しても、これに対する有効な解決策が見つからなかったとは思えません。Entity Framework 6.0に関するこの記事をフォローしています。コードファーストの簡単なウォークスルーを提供します。プロジェクトを作成し、プロジェクトをコンパイルするための最新のEF Nugetパッケージをインストールしました。また、Visual Studio 2013に付属のMicrosoft SQL Server 2012 Express LocalDBがインストールされていることも確認しました。ローカルコンピューターにSQLの他のインスタンスがインストールされていません。プログラムが実行され、エントリがデータベースに追加され、コンソールに出力されます。しかし、記事で「localdbを確認してください」と書かれている場合、その方法はわかりません。プロジェクトフォルダーの下に作成された「.mdf」または「.ldf」ファイルが表示されません。私はVisual Studioを接続するためにあらゆる方法を試しました ■サーバーエクスプローラからLocalDB。ウィザードが見つかりません(localdb)または(localdb)\v11.0;Integrated Security=true;、StackOverflowのいくつかの場所で質問されたように接続文字列を受け入れるプロバイダーをサーバーエクスプローラーで見つけることができませんが、回答が機能しないか、回答としてマークされています。助けてください、これはこのイライラする必要はありません! Visual Studio Server ExplorerをLocalDBに接続する手順は何ですか?

6
Fluent APIで一意の制約を設定しますか?
私は、コードファーストでEFエンティティを構築し、EntityTypeConfiguration流暢なAPIを使用しようとしています。主キーの作成は簡単ですが、一意制約を使用すると簡単ではありません。このためにネイティブSQLコマンドの実行を提案する古い投稿を見ていましたが、それでは目的が達成されないようです。これはEF6で可能ですか?

11
Entity Framework 6を​​使用した人々のユニットテストはどうですか?
私はユニットテストとTDD全般から始めたばかりです。以前は手を出していたのですが、ワークフローに追加して、より優れたソフトウェアを作成することにしました。 昨日そのようなことを含めた質問をしましたが、それ自体が質問のようです。コントローラーからビジネスロジックを抽象化し、EF6を使用して特定のモデルとデータインタラクションにマッピングするために使用するサービスクラスの実装を開始するために座った。 問題は、リポジトリでEFを抽象化したくなかったため(それでも特定のクエリなどのサービスの外で利用可能になるため)、自分のサービスをテストしたい(EFコンテキストが使用される)ために、すでに自分自身をロードブロッキングしています。 。 ここで私は問題だと思いますが、これを行う意味はありますか?もしそうなら、IQueryableによって引き起こされたリークの多い抽象化と、メモリ内で作業する際のLinqプロバイダーの違いのために、ユニットテストの主題に関するLadislav Mrnkaによる多くの優れた投稿が簡単ではないことを踏まえて、人々はどうやってそれを実際にやっていますか?特定のデータベースに並置された実装。 テストしたいコードは非常に単純なようです。(これは、私が何をしているかを理解するためのダミーコードです。TDDを使用して作成を推進したいと思います) 環境 public interface IContext { IDbSet<Product> Products { get; set; } IDbSet<Category> Categories { get; set; } int SaveChanges(); } public class DataContext : DbContext, IContext { public IDbSet<Product> Products { get; set; } public IDbSet<Category> Categories { get; set; } public DataContext(string …

3
DbSet.Attach(entity)とDbContext.Entry(entity).State = EntityState.Modified
切り離されたシナリオで、クライアントにdtoを取得し、エンティティにマップして保存すると、次のようになります。 context.Entry(entity).State = EntityState.Modified; context.SaveChanges(); その時は何ですか DbSet.Attach(entity) または、EntityState.Modifiedが既にエンティティをアタッチしているときに.Attachメソッドを使用する必要があるのはなぜですか?

4
最初にEFコードを使用して複合キーをマッピングする
SQLサーバーテーブル: SomeId PK varchar(50) not null OtherId PK int not null これをEF 6コードで最初にどのようにマップする必要がありますか? public class MyTable { [Key] public string SomeId { get; set; } [Key] public int OtherId { get; set; } } 各列の順序を設定する必要があるいくつかの例を見ましたが、それは必要ですか? これに関する公式ドキュメントはどこかにありますか?

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>()); } …


3
Entity Framework 6のマルチ非同期?
これは私のコードです: var banner = context.Banners.ToListAsync() var newsGroup = context.NewsGroups.ToListAsync() await Task.WhenAll(banner, newsGroup); しかし、コントローラーから関数を呼び出したとき。エラーが表示されました 前の非同期操作が完了する前に、このコンテキストで2番目の操作が開始されました。'await'を使用して、このコンテキストで別のメソッドを呼び出す前に、非同期操作が完了したことを確認します。インスタンスメンバーは、スレッドセーフであることが保証されていません。 この問題の解決にご協力ください。

1
Database.BeginTransactionとTransactions.TransactionScope
System.Transactions.TransactionScopeとEF6の違いは何Database.BeginTransactionですか? 誰かが小さな例を挙げたり、明確な違いがあるときにどちらを使用するかを説明したりできますか? PS:私のプロジェクトでは、EF6を使用しています。私はすでにドキュメントを読みましたが、あまり役に立ちませんでした。例も調べましたが、どちらかSqlConnection.BeginTransactionと言えば使用されており、MSはこれDatabase.BeginTransactionをEF6に導入しました。

2
非同期PartialViewにより、「HttpServerUtility.Executeblocked…」例外が発生します
IEnumerable<Post>非同期を使用してデータベースからを取得しようとする部分的なビューがあります... 方法 public static class PostService { public static int PostsPerPage = 50; public static async Task<IEnumerable<Post>> GetRecentAsync(int page = 0) { return await entityFrameworkDbContext.Posts .ToListAsync(); } } PartialView public async Task<ActionResult> Recent(int page = 0) { return PartialView(await PostService.GetRecentAsync(page)); } そして、私がそれを呼び出そうとすると @Html.Action("Recent", "Post") 次の例外が発生します 非同期操作が完了するのを待っている間、HttpServerUtility.Executeがブロックされました。 説明:現在のWebリクエストの実行中に未処理の例外が発生しました。エラーの詳細とコードの発生場所については、スタックトレースを確認してください。 例外の詳細:System.InvalidOperationException:HttpServerUtility.Executeは、非同期操作が完了するのを待っている間にブロックされました。 なぜこのエラーが発生するのですか?それはうまくいかないのですか?

3
Entity Framework6トランザクションのロールバック
EF6を使用すると、次のように使用できる新しいトランザクションがあります。 using (var context = new PostEntityContainer()) { using (var dbcxtransaction = context.Database.BeginTransaction()) { try { PostInformation NewPost = new PostInformation() { PostId = 101, Content = "This is my first Post related to Entity Model", Title = "Transaction in EF 6 beta" }; context.Post_Details.Add(NewPost); context.SaveChanges(); PostAdditionalInformation PostInformation = new …

2
Entity Frameworkのユーザー定義テーブルが不正なクエリを生成する
私は現在、Entity Framework 6とおそらくADO.NETのバグを経験していると思います。期限があるので、このバグが修正されるのを待つことができるかどうかわかりません。うまくいけば、誰かが私にクリーンな作業を手伝ってくれると思います。 問題は、クエリで値1と5が0.01と0.05になるはずの場所で使用されることです。しかし、奇妙なことに0.1は機能しているようです 生成されたクエリは現在次のとおりです(SQL Server Profilerから取得) declare @p3 dbo.someUDT insert into @p3 values(NULL,5) insert into @p3 values(5,0.10) insert into @p3 values(NULL,1) insert into @p3 values(1,2) exec sp_executesql N'Select * from @AName',N'@AName [dbo].[someUDT] READONLY',@AName=@p3 正しいコードは次のとおりです。 declare @p3 dbo.someUDT insert into @p3 values(NULL,0.05) insert into @p3 values(0.05,0.10) insert into @p3 values(NULL,0.01) …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.