Tag: entity framework

entity framework数据在具有中央数据库的多用户环境中更新

让我解释一下这个标题。 我在应用程序(TestApp)中使用Entity Framework Code First。 出于调试目的, TestApp连接到SQLExpress数据库(中央数据库服务器)。 为了简单起见,数据库包含一个表“Products”,TestApp在数据网格中显示数据库中的所有“产品”,TestApp可以添加/删除“产品”或修改ProductName。 public class Product { public int ProductId { get; set; } public string ProductName { get; set; } } public DbSet Products { get; set; } 我有3个PC安装并运行TestApp(我称之为Client_X)。 如果我通过Client_1添加新的“产品”,则不会在Client_2和Client_3上的TestApp中直接显示。 仅当Client_2和Client_3再次获取所有数据(手动刷新)时,才会看到新添加的记录。 我想知道的是:如何通过EF Code First了解数据库中的更改? Client_2和Client_3如何自动更新其数据网格,因为添加或删除了新项目? 我不确定它是否被要求太多,但是一个简单的示例项目或简单的代码来certificate这将是有用的。 仅供参考:我是EF Code First的新手。 (我使用的是.NET 4.0和EF Code First 4.3.1) 提前致谢。 方案: Client_3 Client_1 [Central […]

entity framework没有在没有标识列的表上工作

我有下表: create table tbl ( id int identity(1,1), val varchar(100) ) 现在,当我使用Entity Framework将对象映射到此表时,它可以工作,但是当我更改表定义时,如下所示: create table tbl1 ( id int, val varchar(100) ) entity framework不会将对象映射到此表。 关于为什么会发生这种情况的任何线索都将受到赞赏。

类型推断在对可空和非可空int的’join’调用中失败

在我的Linq中,我试图将内部联接设置为可以为空的字段。 员工和部门有关系,部门可能有EmployeeID或可能有null。 那么什么是我的连接,如果我只想要满足内连接的记录(没有结果为null EmployeeIDs): var result = from emp in employees join dept in departments on new { Source = emp.EmployeeID } equals new { Source = dept.EmployeeID }; 我得到一个例外: join子句中某个表达式的类型不正确。 在“加入”调用中类型推断失败。 谢谢

entity framework代码优先执行标量值函数

如何首先使用代码执行标量函数? 下面是我尝试但只返回查询本身,而不是返回值。 using (var dbContext = new FTTRContext()) { queryResult = dbContext.Database.SqlQuery(“SELECT [dbo].[ufnGetTotalUsers] (GETDATE())”).ToString(); }

是否真的不可能在EF中更新子集合(也就是非hacky方式)?

假设您的实体中有这些类。 public class Parent { public int ParentID { get; set; } public virtual ICollection Children { get; set; } } public class Child { public int ChildID { get; set; } public int ParentID { get; set; } public virtual Parent Parent { get; set; } } 并且您有一个用户界面来更新Parent及其Children ,这意味着如果用户添加新Child则必须插入,如果用户编辑现有Child则需要更新,如果用户删除了Child那么必须删除。 现在很明显,如果您使用以下代码 public void Update(Parent obj) […]

entity framework – 如何在种子方法中获取相对文件路径

为什么filePath为null? 有关如何获取相对filePath的任何想法? internal sealed class Configuration : DbMigrationsConfiguration { public Configuration() { // code here is not relevant to question } protected override void Seed(MvcProject.Models.FileDb context) { string filePath = System.Web.HttpContext.Current.Server.MapPath(“~/Content/File.txt”); // read File.txt using filePath and update the database } } 我在ASP .NET MVC项目上设置entity framework时创建的Migrations文件夹中的Configuration.cs文件中有上面的代码 当我在程序包管理器控制台中运行“Update-Database -Verbose”时,我收到一个错误,即filePath为null。 如果我手动设置filePath与文件的绝对URL: string filePath = “C:/Users/User1/My Documents/Visual Studio […]

entity framework和VARBINARY

我正在使用.NETentity framework,我有一个包含varbinary的实体。 有没有一种简单的方法可以在代码隐藏中获取varbinary的大小,从数据库中检索出来之后呢? 我想可能有一些方法可以直接从实体获取大小,比如entity.Context.Size – 还是需要以不同的方式处理它?

使用数据库拦截器的entity framework软删除实现不起作用

我使用以下教程实现了一个数据库软删除(一个将条目标记为已删除的布尔标志): http : //www.codeguru.com/csharp/csharp/soft-deleting-entities-cleanly-using-entity-framework- 6- interceptors.html 在我看来,这是一个非常好的实现,因为一旦设置了软删除就可以通过添加[SoftDelete(“IsDeleted”)]注释来应用于模型。 问题到目前为止它无法正常工作。 来源似乎是可靠的,他们甚至发布了他们的解决方案的一个例子: https : //github.com/rakeshbabuparuchuri/EFExpensionPoints 在将软删除应用到我的项目中时,如果我做错了什么,你能看看我的代码吗? 这是模型: [SoftDelete(“IsDeleted”)] public class BC_Instance { public int ID { get; set; } public bool IsDeleted { get; set; } } ApplicationDbContext.cs: namespace bcplatform2.Models { public class ApplicationDbContext : IdentityDbContext { public ApplicationDbContext() : base(“DefaultConnection”, throwIfV1Schema: false) { } // Add a […]

EF Core添加迁移调试

如何使用断点进入OnModelCreating并查看我的逻辑是否错误或者模型构建器是否正在做我不期望的事情? 我已经看过很多关于如何调试实际迁移的post,但没有关于如何观察模型代码生成方式的内容。 我正试图在我的一些实体上实现一些自定义属性,并且它被忽略了; 我想知道我的配置正在做什么,因为它正在生成模型代码。

entity framework可以在没有交集对象的情况下处理多对多关系吗?

使用数据库第一模型:假设我们有经典表格Student , Course和StudentCourse (后者显然有FKs给Student和Course )。 如果将此模型导入EF,您将获得为每个模型生成的对象。 Student和Course课程将分别包含一系列Student Course ,您需要跳过另一个关系,分别到达Course或Student 。 我希望生成的代码能够使底层交集表不可见,即Student有一个Courses集合, Course有一个Student集合。 我在其他ORM软件(特别是TopLink )中看到了这一点。 可以在EF中完成吗?