Tag: entity framework

对DbContext的通用访问

ObjectContext允许对生成的实体进行generics访问。 DbContext似乎没有这样的支持。 使用通用存储库访问EF5具有挑战性。 假设我想要一个通用的机制来读取任何给定的实体,称之为TEntity: public class DataRepositoryEF5 where T: DbContext { private ObjectContext _context; public DataRepositoryEF5(DbContext context) { _context = ((IObjectContextAdapter)context).ObjectContext; } public IEnumerable ReadAll() where TEntity : class,new() { return GetObjectSet().AsEnumerable(); } protected ObjectSet GetObjectSet() where TEntity : class,new() { ObjectSet result; result = _context.CreateObjectSet(); return result; } } 用法 var context = new […]

entity framework6插入重复值

我有以下两个实体: public class Artist { [Key] public string ArtistId { get; set; } public string Name { get; set; } public virtual ICollection Genres { get; set; } } public class Genre { [Key] public int GenreId { get; set; } public string Name { get; set; } public virtual ICollection Artist { get; set; […]

检测应用于IQueryable 的位置

如何检测IQueryable是否应用了wherefilter? 在这段代码中,我需要以编程方式知道queryFiltered有一个应用于它的地方而query没有 IQueryable query = Context.Customers; IQueryable queryFiltered = Context.Customers .Where(c=>c.Name.Contains(“ABC”));

如何在EF中执行日期部分比较

我听说人们说日期时间比较不起作用只是因为时间部分,因为datetime有时间部分。 在SQL中我总是像这样比较日期时间,它工作正常 select * from employee where convert(varchar,dob,112) > ‘20111201’ // this yyyymmdd format. 我怎么能在LINQ查询中模拟这个?

EF Linq to Entities在实体集上调用ToList()会生成包含多个左外连接的SQL命令

我的实体“Progetto”映射名为VW_AMY_PRG_WCS_Lookup的视图 Progetto有五个导航属性:ClienteDiFatturazione,ClienteDiLavorazione,PercentualeSuccesso,Agente具有多重性0..1和DocumentiWcs具有mupltiplicity * 当我在LINQPad中运行这个简单的语句时 var prj = Progetti.AsQueryable(); prj.ToList(); 生成的sql是 SELECT [Extent1].[IdProgetto] AS [IdProgetto], [Extent1].[IdSerie_Progetto] AS [IdSerie_Progetto], [Extent1].[Importo] AS [Importo], [Extent1].[Data_Prevista_Chiusura] AS [Data_Prevista_Chiusura], [Extent1].[IdStato] AS [IdStato], [Extent1].[Oggetto] AS [Oggetto], [Extent1].[IdMezzo_Pervenuto] AS [IdMezzo_Pervenuto], [Extent1].[IdAgente] AS [IdAgente], [Extent1].[Fido_Residuo] AS [Fido_Residuo], [Extent2].[IdAnagrafica_Fatturazione] AS [IdAnagrafica_Fatturazione], [Extent3].[IdAnagrafica_Lavorazione] AS [IdAnagrafica_Lavorazione], [Extent4].[IdPercentuale_Successo] AS [IdPercentuale_Successo] FROM (SELECT [VW_AMY_PRG_WCS_Lookup].[IdProgetto] AS [IdProgetto], [VW_AMY_PRG_WCS_Lookup].[IdSerie_Progetto] AS [IdSerie_Progetto], […]

entity frameworkTypeUsage对象

我在我的应用程序上运行内存分析器以查找可能的内存泄漏。 System.Data.Metadata.Edm.TypeUsage对象的数量一直在增长,看起来这可能是我的内存问题的原因。 有没有人知道从内存中释放这些TypeUsatge对象的方法? 它们看起来是内部的Entity Framework对象,因为我的代码中没有对它们的任何引用。 我已经确认我已将上下文对象包装在using块中,并且正在释放内存,但此类型用法不希望消失。 您将提供的任何帮助将不胜感激。

entity frameworkIQueryable与poco生成

我已经创建了一个T4模板,它为每个属性生成标准的Entities类和Interfaces,这样我就可以制作只包含我想要的数据的自定义poco对象。 我还创建了一个复制函数,它可以在实现所述实体接口的任何对象之间进行转换 生成的代码如下所示 //—————————————————————————— // // This code was generated from a template. // // Manual changes to this file may cause unexpected behavior in your application. // Manual changes to this file will be overwritten if the code is regenerated. // //—————————————————————————— namespace DomainModel { using System; using System.Collections.Generic; using System.Linq; public interface IRole […]

如何为SQL Server CE使用动态连接字符串?

我在我的Windows应用程序中使用了SQL Server CE 4.0,并使用Entity Framework创建了它的模型。 它工作正常,但我的问题是它没有构造函数来更改连接字符串,默认情况下它从app.config文件中读取连接字符串。 using (var Context = new MyEntitiesModel(//has no constructor)) { … } 我创建了一个动态连接字符串和 using (var Context = new MyEntitiesModel()) { Context.Database.Connection.ConnectionString = entityConnection.ConnectionString; } 它通过这种方式工作正常,但如果我删除app.config文件中的另一个连接字符串,它给了我这个。 错误=无效元代…. 因为默认构造函数使用它 我该怎么处理?

UserControl中的EF无法看到app.config?

我刚刚创建了一个用户控件。 此控件还使用我的静态Entity Framework类来加载两个combobox。 一切都很好,运行没有问题。 设计和运行时正在运行。 然后,当我停止应用程序时,包含我的UserControl的所有表单在设计时间不再起作用。 我只看到两个错误: 错误1:在配置中找不到指定的命名连接,不打算与EntityClient提供程序一起使用,或者无效。 错误2:变量ccArtikelVelden未声明或从未分配过。 (ccArtikelVelde是我的UserControl ) 运行时一切仍然有效 我的静态EF Repositoy类: public class BSManagerData { private static BSManagerEntities _entities; public static BSManagerEntities Entities { get { if (_entities == null) _entities = new BSManagerEntities(); return _entities; } set { _entities = value; } } } 我的UserControl中发生了一些逻辑,用于加载combobox中的数据: private void LaadCbx() { cbxCategorie.DataSource = […]

如何指定DbContext使用的表的名称

这是我之前提出的问题的后续问题 。 我的印象是,如果数据库中有多个表,则将使用DbSet变量的名称来标识该表。 然而,在链接的问题中,很明显DbContext正在选择Products表而不是Portfolio表,即使变量的名称是Portfolio 。 我仍然可以将变量名称更改为任何内容,我仍然可以获取数据。 所以我的问题是DbContext如何映射表? 我需要在项目中添加更多的表,并且不知道如何使用单个DbContext对象(或者我应该在同一个数据库中为单独的表使用单独的DbContext )?