Questions tagged «entity-framework»

有关ADO.NET实体框架的问题,请参阅.NET Framework的对象关系映射(ORM)工具。如果适用,请添加特定于版本的标签。请勿对实体框架核心问题使用此标签。请改用entity-framework-core。

13
实体框架DateTime和UTC
是否可以让实体框架(我目前正在使用CTP5的代码优先方法)将所有DateTime值存储为数据库中的UTC? 或者也许有一种方法可以在映射中指定它,例如在此中的last_login列: modelBuilder.Entity<User>().Property(x => x.Id).HasColumnName("id"); modelBuilder.Entity<User>().Property(x => x.IsAdmin).HasColumnName("admin"); modelBuilder.Entity<User>().Property(x => x.IsEnabled).HasColumnName("enabled"); modelBuilder.Entity<User>().Property(x => x.PasswordHash).HasColumnName("password_hash"); modelBuilder.Entity<User>().Property(x => x.LastLogin).HasColumnName("last_login");

4
LINQ to Entities仅支持使用IEntity接口转换EDM基本类型或枚举类型
我有以下通用扩展方法: public static T GetById<T>(this IQueryable<T> collection, Guid id) where T : IEntity { Expression<Func<T, bool>> predicate = e => e.Id == id; T entity; // Allow reporting more descriptive error messages. try { entity = collection.SingleOrDefault(predicate); } catch (Exception ex) { throw new InvalidOperationException(string.Format( "There was an error retrieving …

21
无法从程序集中加载BuildTasks.Csc任务?
我在这里问这样的问题感到内,但我很茫然,不胜感激。 诸如Web应用程序之类的概念验证建在一台PC上,并放在存储库中以在另一位置的另一台PC上下载。最初设置了自动构建功能,Azure将在签入时自动构建和发布功能,但是该功能已删除。事情一直在两端进行,直到一侧包含大量排除的更改。现在,我看到以下错误: 无法 从程序集... \ packages \ Microsoft.Net.Compilers.1.0.0 \ build .. \ tools \ Microsoft.Build.Tasks.CodeAnalysis.dll中加载“ Microsoft.CodeAnalysis.BuildTasks.Csc”任务。无法加载文件或程序集“ file:/// ... \ packages \ Microsoft.Net.Compilers.1.0.0 \ tools \ Microsoft.Build.Tasks.CodeAnalysis.dll”或其依赖项之一。该系统找不到指定的文件。确认声明正确,程序集及其所有依赖项均可用,并且任务包含实现Microsoft.Build.Framework.ITask的公共类。 有人对从哪里开始寻找问题有任何建议吗?

9
不使用存储库模式,请按原样使用(EF)ORM
我一直使用存储库模式,但是对于我的最新项目,我想看看是否可以完美使用它以及实现“工作单元”。我越开始挖掘,就会开始问自己一个问题:“我真的需要吗?” 现在,这一切都从对Stackoverflow的一些评论开始,并追溯到Ayende Rahien在他的博客上的帖子,其中包括2个具体的, 存储库是新的单例 询问没有存储库的阿连德生活,他们值得生活 这可能永远被谈论,并且取决于不同的应用程序。我想知道什么 这种方法是否适合实体框架项目? 使用这种方法是业务逻辑仍在服务层中,还是扩展方法(如下所述,我知道扩展方法是使用NHib会话)? 使用扩展方法很容易做到。干净,简单且可重复使用。 public static IEnumerable GetAll( this ISession instance, Expression<Func<T, bool>> where) where T : class { return instance.QueryOver().Where(where).List(); } 使用这种方法并Ninject作为DI,我是否需要制作Context一个接口并将其注入控制器中?


5
Linq Query不断抛出“无法创建类型为System.Object…的常量值”,为什么?
以下是代码示例: private void loadCustomer(int custIdToQuery) { var dbContext = new SampleDB(); try { var customerContext = from t in dbContext.tblCustomers // keeps throwing: where t.CustID.Equals(custIdToQuery) // Unable to create a constant value of type 'System.Object'. select new // Only primitive types ('such as Int32, String, and Guid') { // are …

1
同一数据库中的多个数据库上下文和EF 6中的应用程序以及代码优先迁移
我是实体框架的新手。我正在尝试设置使用EF 6的MVC应用程序。我正在使用代码优先迁移。我在应用程序中使用Areas,并且希望每个区域中都有不同的DbContext来分解它。我知道EF 6具有ContextKey,但是我找不到有关如何使用它的完整信息。目前,我一次只能使用一个上下文的迁移。 有人可以提供一个足够详细的示例,让像我这样的EF新手了解和使用。

21
在System.ComponentModel默认值Attrbute中将DateTime属性的默认值设置为DateTime.Now
有谁知道如何使用System.ComponentModel DefaultValue属性为DateTime属性指定Default值? 例如,我尝试这样: [DefaultValue(typeof(DateTime),DateTime.Now.ToString("yyyy-MM-dd"))] public DateTime DateCreated { get; set; } 并且它期望该值是一个常量表达式。 这是在与ASP.NET动态数据一起使用的上下文中。我不想设置DateCreated列,而只是提供DateTime.Now(如果不存在)。我正在使用实体框架作为数据层 干杯, 安德鲁



6
将数据注释添加到由实体框架生成的类
我有以下由实体框架生成的类: public partial class ItemRequest { public int RequestId { get; set; } //... 我想将此设为必填字段 [Required] public int RequestId { get;set; } 但是,由于这是生成的代码,因此将被清除。我无法想象创建局部类的方法,因为该属性是由生成的局部类定义的。如何以安全的方式定义约束?

12
ADO.NET实体框架:更新向导不会添加表
我在项目中添加了一个新的ADO.Net实体数据模型,并使用了更新向导”将表添加到模型中。所选表中的五个被添加到设计图面上。其他两个表将不会添加。我在向导中选择它们,然后单击“完成”,但它们从未显示在设计图面上。 这是一个错误,还是在某些情况下(通过设计)无法将表添加到模型中? 更新:XML(* .edmx)揭示了问题。 <!--Errors Found During Generation: warning 6013: The table/view 'FooBar.dbo.Roles' does not have a primary key defined and no valid primary key could be inferred. This table/view has been excluded. To use the entity you will need to review your schema, add the correct keys and uncomment …

13
实体框架太慢。我有什么选择?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 3年前关闭。 改善这个问题 我遵循了“不要过早优化”的口头禅,并使用实体框架对WCF服务进行了编码。 但是,我分析了性能,并且实体框架太慢了。(我的应用程序在大约1.2秒内处理了2条消息,而我正在重写的(旧版)应用程序同时执行5-6条消息。(旧版应用程序为其数据库访问调用了sprocs。) 我的分析指向Entity Framework,它占用了每条消息的大部分时间。 那么,我有什么选择? 有更好的ORM吗? (仅支持正常读取和写入对象并快速完成的操作。) 有没有办法使实体框架更快? (注意:当我说更快时,我的意思是从长远来看,而不是第一次通话。的消息。) 某些神秘的第三种选择,将帮助我提高服务速度。 注意:我的大多数数据库交互都是“创建和更新”。我很少选择和删除。

6
实体框架查询速度很慢,但是SqlQuery中的相同SQL速度很快
我看到一些非常奇怪的性能,它们与使用.NET Framework版本4的Entity Framework Code-First进行的非常简单的查询有关。LINQ2Entities查询如下所示: context.MyTables.Where(m => m.SomeStringProp == stringVar); 这将花费3000毫秒以上的时间来执行。生成的SQL看起来非常简单: SELECT [Extent1].[ID], [Extent1].[SomeStringProp], [Extent1].[SomeOtherProp], ... FROM [MyTable] as [Extent1] WHERE [Extent1].[SomeStringProp] = '1234567890' 通过Management Studio运行时,该查询几乎立即运行。当我更改C#代码以使用SqlQuery函数时,它将在5到10毫秒内运行: context.MyTables.SqlQuery("SELECT [Extent1].[ID] ... WHERE [Extent1].[SomeStringProp] = @param", stringVar); 因此,使用完全相同的SQL,在两种情况下,生成的实体都会进行更改跟踪,但是两者之间的性能差异很大。是什么赋予了?

10
如何使用实体框架获取列的最大值?
要获取包含整数的列的最大值,我可以使用以下T-SQL命令 SELECT MAX(expression ) FROM tables WHERE predicates; 是否有可能使用实体框架获得相同的结果。 假设我有以下模型 public class Person { public int PersonID { get; set; } public int Name { get; set; } public int Age { get; set; } } 如何获得最大的年龄? int maxAge = context.Persons.?
92 c#  sql  entity-framework  max 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.