标签: entity-framework-5

实体框架和DateTime比较,具有毫秒精度

关于DateTime值的比较,我在C#下的实体框架(Code First)遇到了问题.我使用下面定义的类Validity(在本例中简化)作为其他实体的超类,这些实体应该具有及时的有效性.

public abstract partial class Validity {
    [Key]
    public int ID { get; set; }

    public DateTime? ValidFrom { get; set; }
    public DateTime? ValidTo { get; set; }

    /**
     * @brief This method builds an IQueryable from another IQueryable,
     * with added restriction on ValidityFrom/To
     *
     * An object's validitiy is defined to
     *   1. start at timestamp ValidFrom (=inclusive) and
     *   2. to end before ValidTo (=exclusive).
     *   3. If ValidFrom or ValidTo is NULL, it means …
Run Code Online (Sandbox Code Playgroud)

datetime entity-framework compare sql-server-2008 entity-framework-5

8
推荐指数
1
解决办法
3524
查看次数

WebSecurity.CreateUserAndAccount propertyValues

我正在写一个mvc 4 c#.net 4.5网站

我想创建一个新的公司对象并注册一个链接到该公司的新用户.

我的帐户模型是:

    [Table("UserProfile")]
    public class UserProfile
    {
        [Key]
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int UserId { get; set; }
        public string UserName { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string EmailAddress { get; set; }
        public string PhoneNumber { get; set; }
        public bool MarketingEmailOptin { get; set; }
        public bool isDisabled { get; set; }
        public virtual Company CompanyICanEdit { get; set; } 
    }
Run Code Online (Sandbox Code Playgroud)

如果我调用以下内容,则会将用户添加为罚款,但对于CompanyICanEdit字段为null:

WebSecurity.CreateUserAndAccount(addCompanyViewModel.User.UserName, …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc-4 entity-framework-5

8
推荐指数
1
解决办法
1万
查看次数

如何强制实体框架不要查询为sp_executesql

我有一个有10亿行的桌子.当我查询clausule和值是硬编码的时候(tabulka = tabulka.Where(x => x.Value.Contains("value")sql查询是作为批处理发送到sql.它花了大约5秒.当值不是硬编码(tabulka = tabulka.Where(x => x.Value.Contains(value))时,查询发送一个RPC并花了15秒.

这是EF发送给SQL(来自Profiler)的真实示例:

exec sp_executesql N'SELECT 
[GroupBy1].[A1] AS [C1]
FROM ( SELECT 
    COUNT(1) AS [A1]
    FROM [dbo].[Tabulka] AS [Extent1]
    WHERE ([Extent1].[Column] LIKE @p__linq__0 ESCAPE N''~'') AND ([Extent1].[Column] LIKE @p__linq__1 ESCAPE N''~'')
)  AS [GroupBy1]',N'@p__linq__0 nvarchar(4000),@p__linq__1 nvarchar(4000)',@p__linq__0=N'%text1%',@p__linq__1=N'%text2%'
Run Code Online (Sandbox Code Playgroud)

这需要15秒.

当我添加OPTION(RECOMPILE)时花了5秒钟:

exec sp_executesql N'SELECT 
[GroupBy1].[A1] AS [C1]
FROM ( SELECT 
    COUNT(1) AS [A1]
    FROM [dbo].[Tabulka] AS [Extent1]
    WHERE ([Extent1].[Column] LIKE @p__linq__0 ESCAPE N''~'') AND ([Extent1].[Column] LIKE @p__linq__1 ESCAPE N''~'')
)  AS [GroupBy1] …
Run Code Online (Sandbox Code Playgroud)

c#-4.0 entity-framework-5

8
推荐指数
1
解决办法
1999
查看次数

我应该在Entity Framework中使用继承还是有更好的方法?

我想在应用程序中跟踪各种对象.对象是计算机,照相机,交换机,路由器等.我希望各种对象从一个名为Device的对象继承,因为它们都有一些共同的属性(即IP地址,MAC地址等)我喜欢创建对象使用设计器(Model First),但我不喜欢从模型更新数据库的困难.基本上,我不喜欢删除数据库并重新创建它,特别是在我开始填充数据库之后.我尝试的另一种方法是在SQL Server中使用SSMS创建数据库,但是当我从数据库创建POCO时,实体不会相互继承.对我的情况有什么好处?

c# entity-framework-5

8
推荐指数
1
解决办法
3210
查看次数

使用扩展方法(EF5)返回DbContext.Detach()方法

有没有Detach(object entity)DbContext实体框架5.

要分离实体,现在需要改变状态.也许我错过了一些东西,但这似乎比使用该Detach方法更不直观和可读:

context.Entry(myEntity).State = EntityState.Detached;
Run Code Online (Sandbox Code Playgroud)

我很想创建一个扩展方法来恢复Detach方法:

public static void Detach(this MyEntities context, object entity)
{
    context.Entry(entity).State = EntityState.Detached;
}
Run Code Online (Sandbox Code Playgroud)

Microsoft删除EF 5中的DbContext.Detach()方法的原因是什么?

.net c# entity-framework entity-framework-5

8
推荐指数
2
解决办法
1万
查看次数

实体框架代码第一个通用数据库审计字段

我是Entity Framework的新手,过去我直接使用Enterprise Library或ADO.NET将模型映射到数据库表.我使用的一种模式是将我的公共审计字段放在基类中的每个表中,然后为每个对象继承该基类.

我采取两个步骤来保护两个字段(Created,CreatedBy):

  1. 在Base Enitity上创建一个无参数构造函数私有,并创建第二个需要Created和CreatedBy的构造函数在创建时传递.
  2. 使setter Private,以便在创建对象后无法更改值.

基类:

using System;

namespace App.Model
{
    [Serializable()]
    public abstract class BaseEntity
    {
        public bool IsActive { get; private set; }
        public DateTimeOffset Created { get; private set; }
        public string CreatedBy { get; private set; }
        public DateTimeOffset LastUpdated { get; protected set; }
        public string LastUpdatedBy { get; protected set; }

        private BaseEntity() { }

        protected BaseEntity(DateTimeOffset created, string createdBy)
        {
            IsActive = true;
            Created = created;
            CreatedBy = createdBy;
            LastUpdated …
Run Code Online (Sandbox Code Playgroud)

c# oop entity-framework entity-framework-5

8
推荐指数
2
解决办法
3434
查看次数

Azure Web角色中的实体框架DbContext

我正在将现有的Web应用程序(使用Entity Framework 5)迁移到Azure Web角色.

正在将数据库连接字符串从文件移动web.configServiceConfiguration.*.cscfg文件.

问题是在自动生成的 Model.Context.cs文件中,我的实体类定义如下:

public partial class MyEntities : DbContext
{
    public MyEntities()
        : base("name=MyEntities")
    { }

    // DbSets, etc
}
Run Code Online (Sandbox Code Playgroud)

这总是会MyEntitiesweb.config.如何覆盖此构造函数以便我可以从ServiceConfiguration.*.cscfg文件中传入连接字符串?

我可以从这个类中派生出来,就像这样:

public class MyCloudEntities : MyEntities
{
    public MyCloudEntities()
        : base(CloudConfigurationManager.GetSetting("MyEntities"))
    { }
}
Run Code Online (Sandbox Code Playgroud)

但后来我必须改变MyEntities代码库中的每个实例,并且它不会阻止开发人员MyEntities在将来使用.

entity-framework web-config azure azure-web-roles entity-framework-5

8
推荐指数
1
解决办法
1673
查看次数

实体框架 - 通过更改外键来更新关系

我有以下两个模型和DbContext:

    public class TestDbContext : DbContext
    {
        public IDbSet<Person> People { get; set; }
        public IDbSet<Car> Cars { get; set; }
    }

    public class Person
    {
        public Person()
        {
            ID = Guid.NewGuid();
        }

        public Guid ID { get; set; }
        public string Name { get; set; }
        public virtual List<Car> Cars { get; set; }
    }

    public class Car
    {
        public Car()
        {
           ID = Guid.NewGuid();
        }

        public Guid ID { get; set; }
        public string Name { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# orm entity-framework relational-database entity-framework-5

8
推荐指数
1
解决办法
2万
查看次数

实体框架 - 表值函数 - 参数已存在

我正在使用带有Entity Framework 5的表值函数.我刚收到此错误:

参数集合中已存在名为"EffectiveDate"的参数.参数名称在参数集合中必须是唯一的.参数名称:参数

它是由我加入对具有相同参数的表值函数的调用引起的.

这是EF的错误/限制吗?有解决方法吗?现在我正在自动生成代码(.edmx文件).

entity-framework parameter-passing user-defined-functions entity-framework-5

8
推荐指数
2
解决办法
1315
查看次数

禁用Database-First工作流上的默认构造函数

如何防止使用生成的DbContext的无参数构造函数?

var dcx = new DataEntities();
Run Code Online (Sandbox Code Playgroud)

默认构造函数由T4模板生成,因此我无法在分部类中覆盖它.我宁愿它不编译,但运行时错误也会很好.

entity-framework entity-framework-5 ef-model-first

8
推荐指数
1
解决办法
1426
查看次数