Tag: entity framework

使用EF6加载数据库初始化程序时出错

我一直在努力学习这个教程… http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for -an-asp-net-mvc-application但我一直收到以下错误…… system.invalidoperationexception = {“无法为应用程序配置中指定的DbContext类型’WeddingPreparations.Dal.WeddingContext’设置’WeddingPreparations.Dal.WeddingInitializer,KevinLisaWedding’类型的数据库初始化程序。有关详细信息,请参阅内部exception。”} 内在的例外是…… {“无法从程序集’EntityFramework,Version = 6.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089’加载类型’WeddingPreparations.Dal.WeddingContext’。”:“WeddingPreparations.Dal.WeddingContext”} 堆栈跟踪是…… at System.Data.Entity.Internal.InitializerConfig.TryGetInitializer(Type requiredContextType, String contextTypeName, String initializerTypeName, Boolean isDisabled, Func`1 initializerArgs, Func`3 exceptionMessage) at System.Data.Entity.Internal.InitializerConfig.c__DisplayClass6.b__1(ContextElement e) at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source, Func`2 predicate) at System.Data.Entity.Internal.InitializerConfig.TryGetInitializerFromEntityFrameworkSection(Type contextType) at System.Data.Entity.Internal.InitializerConfig.TryGetInitializer(Type contextType) at System.Data.Entity.Infrastructure.DependencyResolution.AppConfigDependencyResolver.GetServiceFactory(Type type, String name) at System.Data.Entity.Infrastructure.DependencyResolution.AppConfigDependencyResolver.c__DisplayClass1.b__0(Tuple`2 t) at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, […]

在存储库中使用Include()方法

我在EF 5中有以下内容: var a = context.Posts.Include(x => x.Pack).Select(x => x.Pack.Id).ToList(); 这很有效。 然后我尝试在我的通用存储库中复制它: public IQueryable Include(Expression<Func> criteria) where T : class { return _context.Set().Include(criteria); } 但在这种情况下,我无法执行以下操作: var b = repository.Include(x => x.Pack).Select(x => x.Pack.Id).ToList(); 我收到错误: 无法将类型’Data.Entities.Pack’隐式转换为’bool’ 我怎么解决这个问题? 我应该在Include()方法中更改什么?

值不能为空。 参数名称:extent

我首先使用EF6代码来创建我的数据库。 昨晚一切都运行良好,现在当我运行update-database命令时,我得到以下exception: PM> update-database Specify the ‘-Verbose’ flag to view the SQL statements being applied to the target database. System.ArgumentNullException: Value cannot be null. Parameter name: extent at System.Data.Entity.Utilities.Check.NotNull[T](T value, String parameterName) at System.Data.Entity.Core.Mapping.StorageEntitySetMapping..ctor(EntitySet extent, StorageEntityContainerMapping entityContainerMapping) at System.Data.Entity.ModelConfiguration.Edm.DbDatabaseMappingExtensions.AddEntitySetMapping(DbDatabaseMapping databaseMapping, EntitySet entitySet) at System.Data.Entity.ModelConfiguration.Edm.Services.TableMappingGenerator.Generate(EntityType entityType, DbDatabaseMapping databaseMapping) at System.Data.Entity.ModelConfiguration.Edm.Services.DatabaseMappingGenerator.GenerateEntityTypes(DbDatabaseMapping databaseMapping) at System.Data.Entity.ModelConfiguration.Edm.Services.DatabaseMappingGenerator.Generate(EdmModel conceptualModel) at System.Data.Entity.DbModelBuilder.Build(DbProviderManifest […]

种子方法未调用,entity framework6

我有一个DatabaseInitializer类 public class DatabaseInitializer : CreateDatabaseIfNotExists { protected override void Seed ( DatabaseContext databaseContext ) { // Seed the hash methods. var defaultHashMethod = new HashMethod { Description = “Default”, CreateDate = DateTime.Now }; databaseContext.HashMethod.Add(defaultHashMethod); databaseContext.SaveChanges(); } } 在我的DatabaseContext类中,我设置了初始化程序 public DatabaseContext() : base(“DatabaseContext”) { InitializeDatabase(); } private void InitializeDatabase() { Database.SetInitializer(new DatabaseInitializer()); if (!Database.Exists()) { […]

entity framework存储过程 – 使用CodeFirst的多个结果集

我使用以下代码从存储过程中获取常规结果: var paramUserId = new SqlParameter { ParameterName = “userId”, Value = userId }; string query = string.Format(“{0} {1}”, “SpSetFoo”, “@userId”); var results = context.Database.SqlQuery(query, paramUserId); result = results.ToList(); 同时我需要从另一个存储过程中检索多个结果集,根据这个文档,我发现它是可能的: http : //msdn.microsoft.com/en-us/data/jj691402.aspx 但是,微软的例子是使用ADO.NET。 如果没有使用EF的ADO.NET,不可能实现相同的结果吗? 谢谢

使用TransactionScope需要新的缺点

我想了解在EntityFramework ( w / Sql Server 2008 )上使用TransactionScopeOption.RequiresNew /缺点是什么,我们不应该总是使用RequiresNew的原因是什么。 问候。

LINQ OrderBy Name ThenBy ChildrenCollection.Name

在LINQ中有没有办法做一个OrderBy,然后用ThenBy做一个ThenBy,使用父对象的子进行二次排序? _repository.GetActiveDepartmentGroupsWithDepartments().OrderBy(c => c.DepartmentGroupName).ThenBy(c => c.Departments.OrderBy(d => d.DepartmentName)) 在上面的例子中,c.Departments是一个EntityCollection。 顺便说一句:当我尝试上面的内容然后在其上执行ToList()时,我收到此错误: DbSortClause expressions must have a type that is order comparable. Parameter name: key 在此先感谢任何帮助或指导。

尝试在.Net Standard项目中设置Entity Framework核心

我想知道我是否可以轻松地在.NET Standard 2.0项目中设置我的EntityFrameworkCore。 我正在学习本教程,但它需要.NET Core或Framework。 当我到达这一步时: Scaffold-DbContext “Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;” Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models 我收到了这个错误: 启动项目’projectName’的目标是框架’.NETStandard’。 没有与此框架关联的运行时,并且无法直接执行以其为目标的项目。 要将Entity Framework核心软件包管理器控制台工具与此项目一起使用,请添加一个针对引用此项目的.NET Framework或.NET Core的可执行项目,并将其设置为启动项目; 或者,更新此项目以跨目标.NET Framework或.NET Core。 我想知道我是否可以在.NET Standard中设置我的实体,或者是否有我应该做的最佳实践?

System.Data.MetadataException:无法加载指定的元数据资源

我的连接字符串如下: 我的代码如下: using (var db= new RollCallDBEntities()) //ok { var query = db.TBL_ROLLCALL.ToList(); //Unable to load the specified metadata resource. } 我的集会: System.Engine 有人有主意吗? 这些链接没有解决我的问题: MetadataException:无法加载指定的元数据资源 entity framework无法加载指定的元数据资源 entity framework:无法加载指定的元数据资源 无法加载指定的元数据资源

如何根据实体输入参数过滤IEnumerable

我正在使用现在的entity framework – 但它是所有ORM甚至IEnumerable之间“共享”的问题。 假设我在MVC中有一个方法如下所示: [HttpPost] public ActionResult Foo(FooModel model) { var context = new Context(); — The EF session var data = context.Foo.Where(???).ToList(); return View(data); } 我想根据输入参数查询上下文,如: var data = context.Foo.Where(x => x.Date == model.Date && x.Name == model.Name && x.ItemCode = model.ItemCode).ToList(); 但它比这更复杂,因为如果上面的一个参数( Date \ Name \ ItemCode )为null,我不想将它包含在查询中。 如果我硬编码它看起来像这样: var query = […]