相关疑难解决方法(0)

如何将System-Versioned Temporal Table与Entity Framework一起使用?

我可以在SQL Server 2016中使用时态表.遗憾的是,Entity Framework 6还不知道这个功能.是否有可能使用实体框架6 使用新的查询选项(请参阅msdn)?

我创建了一个带有员工时态表的简单演示项目:

在此输入图像描述

我使用edmx将表映射到实体(感谢Matt Ruwe):

在此输入图像描述

使用纯sql语句一切正常:

using (var context = new TemporalEntities())
{
    var employee = context.Employees.Single(e => e.EmployeeID == 2);
    var query = 
      $@"SELECT * FROM [TemporalTest].[dbo].[{nameof(Employee)}]
         FOR SYSTEM_TIME BETWEEN
         '0001-01-01 00:00:00.00' AND '{employee.ValidTo:O}'
         WHERE EmployeeID = 2";
    var historyOfEmployee = context.Employees.SqlQuery(query).ToList();
}    
Run Code Online (Sandbox Code Playgroud)

是否可以在没有纯SQL的情况下将历史记录功能添加到每个实体?我的解决方案作为实体扩展与反射来操纵SQL查询IQuerable并不完美.是否有现有的扩展或库来执行此操作?

编辑:(基于Pawel的评论)

我试图使用表值函数:

CREATE FUNCTION dbo.GetEmployeeHistory(
    @EmployeeID int, 
    @startTime datetime2, 
    @endTime datetime2)
RETURNS TABLE
AS
RETURN 
(
    SELECT 
        EmployeeID,
        [Name], 
        Position, 
        Department, 
        [Address], …
Run Code Online (Sandbox Code Playgroud)

c# sql entity-framework temporal sql-server-2016

20
推荐指数
1
解决办法
3956
查看次数

实体框架核心:当 IDENTITY_INSERT 设置为 OFF 时,无法为表“关系”中的标识列插入显式值

我正在构建一个应用程序,当我想在我的表单表中插入一个表单时,我收到以下错误:

当 IDENTITY_INSERT 设置为 OFF 时,无法为表 'Relation' 中的标识列插入显式值。

这些是我的模型:

表格型号:

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }
    [ForeignKey("FormType")]
    public int? TypeId { get; set; }
    public virtual FormType Type { get; set; }

    [ForeignKey("FormStatusType")]
    public int? StatusTypeId { get; set; }
    public virtual FormStatusType StatusTknype { get; set; }

    [ForeignKey("Relation")]
    public int? SupplierId { get; set; }
    public virtual Relation Supplier { get; set; }

    [ForeignKey("Relation")]
    public int? CustomerId { get; set; }
    public virtual Relation Customer { get; …
Run Code Online (Sandbox Code Playgroud)

.net c# entity-framework-core

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

如何使用Entity Framework Core将属性设置为“身份”或自动递增的列?

在我使用c#编写的新WPF项目中,我想尝试使用Entity Framework Core与我的SQL Server数据库进行交互。

每次尝试将模型添加到上下文中时,都会出现以下错误

当IDENTITY_INSERT设置为OFF时,无法为表“订单”中的标识列插入显式值。

我正在使用Repository和UnitOfWork包装实体框架核心方法来执行所需的工作。

但最简单地说,我正在执行以下代码

var order = new Order();
order.Title = "some";
....
Context.Orders.Add(order);
Context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

这是我的模特

public class Order
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Int64 Id { get; set; }

    public string Status { get; set; }
    public int? CustomerId { get; set; }
    public DateTime? Birthdate { get; set; }
    public int UtcOffset { get; set; }\
    public DateTime CreatedAt { get; set; }
    public DateTime? UpdatedAt { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# wpf entity-framework entity-framework-core

6
推荐指数
2
解决办法
2997
查看次数