Tag: entity framework

entity framework中是否不支持通用类作为模型?

我想做这样的事情: public class TrackerContext : DbContext { public bool TrackNewValues { get; set; } public TrackerContext(bool trackNewValues = false) : base() { TrackNewValues = trackNewValues; } public TrackerContext(string connectinString, bool trackNewValues = false) : base(connectinString) { TrackNewValues = trackNewValues; } public DbSet<AuditLog> AuditLog { get; set; } public DbSet LogChildren { get; set; } } […]

entity framework0..1到0关系

class First { [Key] public int Id { get; set; } } class Second { [Key] public int Id { get; set; } public int? First_Id { get; set; } [ForeignKey(“First_Id”)] public First First { get; set; } } public class SecondMapping : EntityTypeConfiguration { public SecondMapping () : base() { this.HasOptional(s => s.First) .With […]

使用Entity Framework和MySQL实现乐观并发

我目前正在使用Entity Framework 4.1和MySQL开发应用程序。 我想使用乐观并发,因此需要创建一个表结构,允许EF检测并发问题。 我的目标与此类似: http : //blogs.msdn.com/b/alexj/archive/2009/05/20/tip-19-how-to-use-optimistic-concurrency-in-the-entity- framework.aspx 。 我的问题是MySQL中的时间戳类型与MS SQL Server不同。 除此之外,时间戳和日期时间都不能提供MySQL的亚秒级精度(http://feedblog.org/2007/05/26/why-doesnt-mysql-support-millisecond-datetime-resolution/)。 因此,这些类型在检测并发性问题时会非常糟糕。 我可以用什么其他数据类型来解决这个问题? 我在考虑使用Guid。 但是这种方法存在两个潜在的问题:1。MySQL将Guids存储为char(36),使得效率非常低。 2.我不确定EF是否要求行版本严格增加,或者它是否足以让它独一无二。

Entity Framework 6迁移是否可以包含围绕脚本的事务?

非常简单的问题,我在entity framework6中使用迁移,并且像命令一样 update-database -script 但有没有一种方法可以生成脚本但是用事务包装它? 问题是,如果脚本失败,我必须取消它

同时使用多对多和一对多同一实体

我在EF Code-First中有一个多对多的关联(正如本问题中所解释的那样),我想对同一个实体使用一对多关系。 问题是EF没有产生正确的数据库方案。 码: public class A { public int Id { get; set; } public string Name { get; set; } public virtual ICollection ObjectsOfB { get; set; } } public class B { public int Id { get; set; } public virtual A ObjectA { get; set; } public virtual ICollection OtherObjectsOfA { […]

为什么在使用Entity Framework时我看不到Local属性?

我知道我遗漏了一些完全明显的东西,但为什么我不能在使用EF上下文时看到属性Local ? 典型的在线示例如下所示: context.Parents.Local 但是我无法看到Local属性。 根据我的理解,Local是DbSet类的成员,我不认为我在我的应用程序中使用DbSet。 我所知道的是我添加了对EntityFramework的引用, using System.Data.Entity ,我熟悉的其他一切工作正常。 除了Local不存在,我确实需要为DataGridView一些排序function。 救命!

entity frameworkTimeSpan – 时间错误

我正在使用EF 5和c#。 在我的主项目中,我使用CodeFirst来创建我的数据库。 我有这个实体: public class Shift { public string Name { get; set; } public TimeSpan StartTime { get; set; } public TimeSpan EndTime { get; set; } } TimeSpan属性创建为time(7),而不是数据库中的null。 在我的MainProject everthing工作正常。 但是当在同一个解决方案中从Windows服务项目(我使用Mainproject中的相同Context和Models)访问数据库时,我收到此错误: 这一行(在Mainproject中多次使用): context.Shifts.Load(); 结果是 There is no store type corresponding to the conceptual side type ‘Edm.Time(Nullable=True,DefaultValue=,Precision=)’ of primitive type ‘Time’. 这个问题的原因是什么? //编辑 […]

EF返回旧值

我在我的桌面应用程序中使用EF6 + WPF和MVVM设计模式。 我也使用Autofac作为DI容器。 我阅读了很多关于EF上下文生命周期管理的内容,并且我决定只为单一视图模型实例提供一个EF上下文实例。 我发现了一些关于这种方法的有趣文章,所以我认为这只是管理EF上下文的好方法。 我使用Autofac来管理EF生命周期,因此每次创建新的视图模型时,都只会创建一个新的EF上下文。 但当然,我遇到了一个问题。 我的大多数EF查询都运行良好,但以下查询始终返回旧的(缓存)值。 每次按“执行”按钮时都会调用此查询,因此每个视图/视图模型都有很多执行 this.context.someTable.Where(arg => arg.value == “value”).Single(); 我知道我总是可以使用以下代码重新加载实体 this.context.Entry(entity).Reload(); 但对我来说这不是一个好的解决方案。 我也知道,如果我处理当前上下文并在下一个查询之前重新创建,我将始终接收当前值。 但是这种方法与每种视图模型方法的一个上下文冲突。 我应该修复/更改什么以避免EF缓存问题并且仍然具有良好的性能。

虚拟导航属性和多租户

我有一个标准的DbContext ,代码如下: public DbSet Interests { get; set; } public DbSet Users { get; set; } 我最近通过创建一个包含以下内容的TenantContext来实现多租户: private readonly DbContext _dbContext; private readonly Tenant _tenant; public TenantContext(Tenant tenant) : base(“name=DefaultConnection”) { this._tenant = tenant; this._dbContext = new DbContext(); } public IQueryable Users { get { return FilterTenant(_dbContext.Users); } } public IQueryable Interests { get { […]

Visual Studio更新模型来自数据库问题

i was facing a issue while trying to add a new Store Procedure from database . update model from data base is showing extra line changes in all Store Procedure and showing in “Include Changes ” in Visual studio . I am using Visual Studio 2015 , trying to add newly created store Procedure in […]