小编cSt*_*off的帖子

C#中表达式中的新Object()和新Object {}之间有什么区别?

我有以下代码片段:

Expression<Func<TSource, TDest>> expression = model => new TDest{};
// Result: {model => new TestModel(){}}
Run Code Online (Sandbox Code Playgroud)

ReSharper使用以下RedundantEmptyObjectOrCollectionInitializer设置重构此代码段:

Expression<Func<TSource, TDest>> expression2 = model => new TDest();
// Result: {model => new TestModel()}
Run Code Online (Sandbox Code Playgroud)

在那之后,我的代码不起作用.花括号对初始化有什么影响?
我发现C#C#之间new object()new {}什么区别在Stack Overflow上,但两个实例看起来都相同.

expression.GetType().ToString() 等于 expression2.GetType().ToString()

表达式树中这些初始化之间有什么区别?:

var a = model => new TDest{};
var b = model => new TDest();
Run Code Online (Sandbox Code Playgroud)

.net c# resharper

65
推荐指数
2
解决办法
4790
查看次数

如何将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
查看次数

模式比较后,Visual Studio中禁用"生成脚本"按钮

我想从数据库和我的数据库项目创建一个delta脚本.数据库作为源和数据库项目作为目标.该Update按钮工作正常,没有任何错误,我的错误列表只包含此警告:

源的登录名没有VIEW ANY DEFINITION权限.如果目标是数据库,则比较将限于数据库范围的元素.

此权限:https://technet.microsoft.com/en-us/library/ms175808(v = sql.105).aspx

在此输入图像描述

在架构比较对我没有帮助,后更新目标按钮被禁用.

如何generate Script在Visual Studio Enterprise 2017中激活Button?我真的需要访问脚本生成的元数据吗?

(编辑):

即使有这个权限也无效.但是我可以在比较两个数据库时生成脚本.

database-project schema-compare visual-studio-2017

15
推荐指数
2
解决办法
3988
查看次数

如何使用Entity Framework设计可配置的字段级权限

假设我们有一个关于某些型号汽车的信息表,例如: 在此输入图像描述

如果我还需要用户可配置的规则,我如何才能最好地实现读写操作的字段级访问权限?我正在使用MSSQL Server 2016和EF 6.

根据该表,我们可能会有以下用例,用于描述某个角色或组可见的字段:

1)公共数据的默认权限组

在此输入图像描述

2)基于实体的权限组

在此输入图像描述

3)基于自定义字段的权限组

在此输入图像描述

要求是,隐藏数据必须与NULL值不同,规则/权限必须是用户可配置的.我还需要对列表进行分页,这需要对可见数据进行正确排序.为此,我需要一种处理数据类型的方法.例如,建设年度为一个非空的日期时间,然而,当该场是不可见的,它需要被设置为像DateTime.MinValue默认值.处理位(布尔值)时,这变得更具挑战性:-)

我目前正在考虑与任何一个表值函数的方法,这似乎是动态地实现对我的情况下,或保存数据,这是我需要保持同步与数据库的全部单独的缓存层更难.

c# sql-server permissions entity-framework

11
推荐指数
1
解决办法
1315
查看次数

以编程方式在Windows中添加带密码的wifi配置文件

是否可以以编程方式将wifi配置文件添加到Windows操作系统(最低版本的Windows 7)?

我尝试使用添加配置文件连接 netsh ,但它对我不起作用.是否有任何powershell命令执行此操作?

我想自动为许多客户端设置一个特殊ssid的wifi密码.

我希望有人有这个想法,或者可以给我一个包含这个样本信息的命令:

  • SSID:WifiNetwork
  • 密码:Password123

谢谢

windows powershell cmd wifi netsh

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

如何使用不同的列名映射 EF6 Code First 中的表值函数?

可以在没有 edmx 的情况下在 EF6 中映射表值函数吗?问题是数据库中列的名称与应用程序中的列名称不同。

我的应用程序作为一个简化的例子。

数据库

SQL Server 2016 上的表用户

User
Id   (int, Identity, PK)
Name (nvarchar(255)
Run Code Online (Sandbox Code Playgroud)

SQL Server 2016 上的表值函数GetUser(id)

User
Id   (int, Identity, PK)
Name (nvarchar(255)
Run Code Online (Sandbox Code Playgroud)

应用

我使用以下 nuget 包:

CREATE FUNCTION [dbo].[GetUser](@ID int)
RETURNS TABLE
AS
RETURN 
(
    SELECT *
    FROM dbo.User
    WHERE Id = @ID
);
Run Code Online (Sandbox Code Playgroud)

C#中的相关对象:

Install-Package EntityFramework.CodeFirstStoreFunctions
Run Code Online (Sandbox Code Playgroud)

在我的 DbContext 类中设置的数据库:

public class User
{
    [Key]
    public int Id { get; set; }

    [Column("Name")]
    public string UserName { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# sql-server entity-framework user-defined-functions entity-framework-6

5
推荐指数
1
解决办法
2070
查看次数

如何从映射中找到自动映射器配置文件?

我有很多映射配置文件,如何从源代码中的特定映射操作中找到正确的映射配置?Resharper 或 Visual Studio 扩展可以提供帮助吗?

我想从这里跳:

var userDto = this.mapper.Map<User, UserDto>(user);
Run Code Online (Sandbox Code Playgroud)

对此:

MapperConfiguration config = new MapperConfiguration(cfg =>
{
    cfg.CreateMap<User, UserDto>(MemberList.None);
    /*etc...*/
});
Run Code Online (Sandbox Code Playgroud)

有可能的?我怎么能意识到呢?

c# automapper visual-studio-extensions

5
推荐指数
1
解决办法
5133
查看次数

如何在 .net core 3.0 中并行运行多个 BackgroundService?

如何并行运行多个 IHostedServices?

我在 .Net Core 3.0 中使用 WorkerService 并希望两个服务并行运行。目前,第二个服务正在等待第一个服务完成。这两种服务都应该无休止地运行。

    public static IHostBuilder CreateHostBuilder(string[] args)
    {
        return Host.CreateDefaultBuilder(args)
            .ConfigureServices((hostContext, services) =>
            {
                services.AddHostedService<ServiceA>();
                services.AddHostedService<ServiceB>();
            });
    }
Run Code Online (Sandbox Code Playgroud)

一个服务看起来像这样:

public class ServiceA : BackgroundService
{
    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        do
        {
            Console.WriteLine("Sample");
            await Task.Delay(5000, stoppingToken);
        } while (!stoppingToken.IsCancellationRequested);
    }
}
Run Code Online (Sandbox Code Playgroud)

// 编辑:我非常不情愿地使用这样的Task.Run(() => method());方法。但当然这种方式总是有效的:

public class ServiceA : BackgroundService
{
    public override Task StartAsync(CancellationToken cancellationToken)
    {
        Task.Factory.StartNew(() => ExecuteAsync(cancellationToken), cancellationToken);
        return Task.CompletedTask;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# .net-core .net-core-3.0

4
推荐指数
1
解决办法
3361
查看次数

是否有可能在c#中重载nameof运算符?

我可以nameof在C#中重载操作符吗?

C#编程指南是过时的和C#引擎盖下6并不能帮助我.

我怎样才能超载nameof操作员?

c# operator-overloading c#-6.0

3
推荐指数
1
解决办法
212
查看次数

如何获取visual studio 2015编辑器窗口的选定文本?

我想实现一个 Visual Studio 2015 扩展来获取用户在代码编辑器中选择的文本。比我想操纵选定的文本。

在代码编辑器中通过上下文菜单有一个按钮/命令。但我不知道如何获取选定的文本。

我认为,这个解决方案在这里已经过时或者我missunderstand解决方案。

c# visual-studio visual-studio-extensions visual-studio-2015

0
推荐指数
1
解决办法
2029
查看次数