Tag: entity framework

在LINQ查询中调用SQL用户定义的函数

我很难让这个工作。 我正在尝试使用IQueryable上的以下Filter助手进行半径搜索。 在RadiusSearch应用之前,还有一组其他filter可以应用。 顺序不应该真正重要,因为目标是将查询推迟到ToList()操作。 public static IQueryable RadiusSearch(this IQueryable communities) { var centerLatitude = 30.421278; var centerLongitude = -97.426261; var radius = 25; return communities.Select(c => new ApiSearchCommunity() { CommunityId = c.CommunityId, City = c.City, //Distance = c.GetArcDistance(centerLatitude, centerLongitude, c.Latitude, c.Longitude, radius) }); } 我可以以某种方式编写一个像GetArcDistance这样的帮助程序,然后在SQL上调用UDF吗? 我想要生成的查询如下 SELECT comms.community_id, comms.city, comms.distance FROM ( SELECT c.community_id, c.city, […]

在sql数据库中查看表新记录

我在Windows应用程序中使用EF,我希望我的应用程序在某个表中插入新记录时执行某些任务“这些新记录将由使用相同数据库的网站插入” 我的问题是如何观看此表进行更改并在新记录到来时收到通知,并且在这种情况下EF可以帮助我吗? 更新:我使用了SqlDependency类并在db中使用了它 ALTER DATABASE UrDb SET ENABLE_BROKER 并且还在数据库http://screencast.com/t/vrOjJbA1y中创建了一个服务和一个队列,但我从未收到来自我的Windows应用程序的通知。 此外,当我在sql server中打开队列时,它总是空的http://screencast.com/t/05UPDIwC8ck接缝有错误但我不知道。

由Entity Framework DbContext执行的日志查询

我在MVC 5项目中使用EF 6.0和LINQ。 我想记录Entity Framework DbContext执行的所有SQL查询,以进行调试/性能测量。 在Java / Hibernate中,可以通过设置属性hibernate.show_sql=true来实现等效行为。 是否有可能在entity framework中有类似的行为?

是否可以阻止EntityFramework 4覆盖自定义属性?

我首先使用EF 4数据库+ POCO。 因为EF没有简单的方法来声明传入的DateTimes是种类的UTC,所以我将属性从自动生成的文件移动到另一个文件中的部分类。 private DateTime _createdOn; public virtual System.DateTime CreatedOn { get { return _createdOn; } set { _createdOn = (value.Kind == DateTimeKind.Unspecified) ? _createdOn = DateTime.SpecifyKind(value, DateTimeKind.Utc) : value; } } 但是,现在每次更新模型时,都会在T4代中再次创建自动化属性。 当然这会导致以下编译错误:“类型’Foo’已经包含’CreatedOn’的定义”。 有没有办法告诉EF不生成该属性并让我自己处理它? 更新 谢谢大家的答案…… 我创建了一个具有不同名称的新自定义属性。 public virtual System.DateTime CreatedOnUtc { get { return (CreatedOn.Kind==DateTimeKind.Unspecified) ? DateTime.SpecifyKind(CreatedOn, DateTimeKind.Utc) : CreatedOn; } set […]

entity frameworkCodeFirst与其他信息的多对多关系

我有以下型号: class Contract { string ContractID{get;set;} ICollection Parts{get;set;} } class Part { string PartID{get;set;} ICollection Contracts{get;set;} } 问题是Part和Contract之间的关系还包含以下附加信息: class ContractParts { Contract{get;set;} Part{get;set;} Date{get;set;} //additional info Price{get;set;} //additional info } 我将如何为此编写实体上下文?

在Windows窗体中使用带有工作单元和存储库模式的简单注入器

我正在尝试在我的Windows窗体应用程序中实现IoC。 我的选择落在Simple Injector上,因为它快速而轻巧。 我还在我的应用程序中实现了工作单元和存储库模式。 这是结构: DbContext : public class MemberContext : DbContext { public MemberContext() : base(“Name=MemberContext”) { } public DbSet Members { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Conventions.Remove();\ } } 型号 : public class Member { public int MemberID { get; set; } public string Name { get; set; […]

entity framework4.1:无法从DbQuery转换为ObjectQuery

我有以下代码: public void DeleteAccountsForMonth(int year, int month) { var result = from acm in this._database.AccountsOnMonth where ((acm.Year == year) && (acm.Month == month)) select acm.Id; var query = (ObjectQuery)result; string sql = string.Format( “DELETE FROM [AccountsOnMonth] WHERE [AccountsOnMonth].[Id] IN ({0})”, query.ToTraceString() ); var parameters = new List(); foreach (ObjectParameter parameter in query.Parameters) { parameters.Add(new System.Data.SqlClient.SqlParameter […]

entity framework只读集合

考虑一个客户,公司,员工等具有ContactInfo属性的域,该属性又包含一组地址,电话,电子邮件等等…… 这是我的缩写ContactInfo: public class ContactInfo : Entity { public ContactInfo() { Addresses = new HashSet(); } public virtual ISet Addresses { get ; private set; } public Address PrimaryAddress { get { return Addresses.FirstOrDefault(a => a.IsPrimary); } } public bool AddAddress(Address address) { // insure there is only one primary address in collection if (address.IsPrimary) […]

将模型导出到DataTable

我想将我的Model数据转换为DataSet或DataTable (以excel格式导出) db.EMPs.ToList() db是DataContext , EMPs是dataclass 。 如何将此列表导出到DataTable ,我可以将行导出到excel但是如何从标题中访问列名(不应在DataTable手动添加列名)

错误:此上下文EF中仅支持原始类型或枚举类型

这段代码不断出现此错误。 : 无法创建“Repository.DBModel.Subscriber”类型的常量值。 在此上下文中仅支持原始类型或枚举类型。 我已经改变了几次,但它不断出现这个错误。 using (SubscriberDBHandler db = new SubscriberDBHandler()) { IEnumerable NewSubscribers = Subscribers .Where(sub => db.Subscriber .Any(aSub => !aSub.Email.Equals(sub.Email))); List updateSubscribers = db.Subscriber .Where(dbSub => Subscribers .Any(lSub => lSub.Email .Equals(dbSub.Email))).ToList(); if(NewSubscribers.Count() >= 1) { db.Subscriber.AddRange(NewSubscribers); } updateSubscribers.ForEach(aSub => aSub.State = Subscribers .FirstOrDefault(sub => sub.Email .Equals(aSub.Email)).State ?? “Error” ); db.SaveChanges(); } 如果有人能够指出我的错误或想出一个更有效的方法来做到这一点,我将不胜感激。 提前感谢您的时间和帮助。 […]