Tag: entity framework

entity framework6中的CreatedOn列

升级到Entity Framework 6后,我们实现了自己的DbExecutionStrategy 。 除了现有的SqlAzureExecutionStrategy,我们的策略还会记录exception。 事实certificate,每15-30分钟entity framework抛出内部SqlException System.Data.SqlClient.SqlException (0x80131904): Invalid column name ‘CreatedOn’. 这是一个内部错误。 如果某些表上存在CreatedOn列,EF似乎会进行一些定期检查。 是否有任何优雅的方法来防止抛出此exception? 这是一个调用堆栈: at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, ref Boolean dataReady) at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() at System.Data.SqlClient.SqlDataReader.get_MetaData() at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String […]

使用LINQ从选择中排除列

我正在使用Entity Framework Code First开发WCF RESTful Web服务。 我有一个表有很多列的Users 。 我这样做是为了得到一个特定的用户: context.Configuration.ProxyCreationEnabled = false; var users = from u in context.Users where u.UserId == userId select u; 在此表上,有一个密码列,我不想返回此列。 如何从该选择中排除密码列?

entity framework多对多插入

我有三张桌子。 命名:Merchants,MerchantNumberX,Numbers(数字由许多其他实体使用 – 这只是一个例子)。 Merchants表看起来像: MerchantGuid, MerchantName Numbers表看起来像: NumberGuid, PhoneNumber 外部参照表如下所示: MerchantGuid, NumberGuid 我知道在entity framework中我可以这样做: var newNumber = new Number { NumberGuid = Guid.NewGuid(), PhoneNumber = “55555555555” }; Merchants.Numbers.Add(newNumber); 这将把关系插入到两个表实体之间的Xref表中。 但是,有没有其他方法将这些表“关联”在一起而没有商家对象? 例如: var newNumber = new Number { NumberGuid = Guid.NewGuid(), PhoneNumber = “4444444444” }; newNumber.MerchantGuid = alreadyKnownMerchantGuid; // This is not available, by the […]

LINQ to Entities无法识别方法’Int32 Parse(System.String)’方法,

我正在使用Entity Framework,我有一行代码将字符串字段(id)转换为int并与数字进行比较 students = students.Where(s => (Int32.Parse( s.id)>5555)); 每当我尝试运行它时,我都会收到此错误。 “LINQ to Entities无法识别方法’Int32 Parse(System.String)’方法,并且此方法无法转换为商店表达式。” 我尝试了不同的东西,没有任何工作,所以任何帮助都会很棒。

私有制定者可以在实体模型中使用吗?

我刚刚开始使用Entity Framework,我担心主键可以被轻松覆盖。 我知道我可以在我的控制器中保护这个模型(我正在使用带有ASP.NET MVC 5的WebAPI),但我想知道是否有可能阻止任何人通过注释或其他东西从模型本身设置我的模型的ID? 基本上我可以这样做: public int ID { get; private set; } 或类似的东西,在EF6模型? 如果这很容易通过谷歌找到,那么我不知道要搜索的条款。 我找不到任何真正能解决这个问题的东西。

如何在entity framework查询中将DateTime转换为TimeSpan

我有Entity Framework 6的LINQ查询: var timeCapturesQuery = Context.TimeCaptures .Where(t => && t.StartDateTime.TimeOfDay startTime); EndTime和StartTime是TimeSpan类型的参数,StartDateTime和EndDateTime是datetime表上的列。 不幸的是,我在运行时收到此错误: LINQ to Entities不支持指定的类型成员’TimeOfDay’。 仅支持初始化程序,实体成员和实体导航属性。 如何在此LINQ查询中从DateTime(即SQL中的datetime的time )获取TimeSpan ?

entity framework自动加载

有没有办法让实体对象通过关系自动提取所有相关数据,而不是必须。包括我想要填充的所有内容? 我不能使用延迟加载,因为这需要序列化以通过WCF。 让它自动填充相关集合真是太棒了。

使用AutoMapper从MVC中的ViewModel更新实体

我有一个Supplier.cs实体及其ViewModel SupplierVm.cs 。 我正在尝试更新现有供应商,但我收到黄色死亡屏幕(YSOD),并显示错误消息: 操作失败:无法更改关系,因为一个或多个外键属性不可为空。 当对关系进行更改时,相关的外键属性将设置为空值。 如果外键不支持空值,则必须定义新关系,必须为外键属性分配另一个非空值,或者必须删除不相关的对象。 我想我知道它为什么会发生,但我不知道如何解决它 。 这是一个关于正在发生的事情的截屏video 。 我认为我收到错误的原因是因为当AutoMapper做它的事情时,这种关系就会丢失。 码 以下是我认为相关的实体 : public abstract class Business : IEntity { public int Id { get; set; } public string Name { get; set; } public string TaxNumber { get; set; } public string Description { get; set; } public string Phone { get; […]

针对ApplicationUser Roles导航属性的ASP MVC Build Throwing Warning?

我有以下ApplicationUser模型: public class ApplicationUser : IdentityUser { public string FirstName { get; set; } public string LastName { get; set; } public virtual ICollection Roles { get; set; } public bool HasRole(string _role) { return Roles.Any(r => r.Name == _role); } public bool HasPermission(string _permission) { return Roles.Any(r => r.Permissions .Any(p => p.Name == _permission)); […]

在ASP .NET MVC应用程序中使用UserManager的Seed方法期间没有创建用户

当Seed方法运行时,记录/对象将添加到我的数据库中。 每个对象都应该添加,直到我尝试将用户添加到我的应用程序(在Seed方法的底部)。 没有人加入。 此外,还有很多SQLexception发布在底部。 即使Seed方法为空,它们也会被抛出。 如何将用户添加到Entity Framework托管数据库? 我按照Scott Allen的教程创建了我的代码。 protected override void Seed(WebApplication2.Models.ApplicationDbContext context) { System.Diagnostics.Debug.WriteLine(“Seed started”);//IT WORKS if (!context.Persons.Any()) { var persons = new List { new Person{FirstName = “John”, LastName = “Doe”, CellNumber = “123-456-789”, SecondaryPhoneNumber = “98873213”, Address = “1street 2”,BirthDate = DateTime.Now.Date, Pesel = “312312312”, Notes = “Annoying”}, new Person{FirstName = […]