小编Pie*_*rto的帖子

LINQ/Entity框架:无参数构造函数问题

为什么这会给我无参数的构造函数错误?

ObservableCollection<ArchivioErogazioniForList> tempHP = new ObservableCollection<ArchivioErogazioniForList>();

var erogazioniFiltrate = from r in MainWindow.dbContext.ArchivioErogazioni
                             where termToFind.Contains(r.IDTER.Value) && r.DATA_EROG >= test
                             select r;
tempHP = new ObservableCollection<ArchivioErogazioniForList>(erogazioniFiltrate.Where(x => x.DATA_EROG >= test).Select(x => new ArchivioErogazioniForList(x)));
Run Code Online (Sandbox Code Playgroud)

虽然这是工作??

private ObservableCollection<ArchivioErogazioniForList> p_ListaMonitorErogazioni2;
public ObservableCollection<ArchivioErogazioniForList> ListaMonitorErogazioni2
{
    get { return p_ListaMonitorErogazioni2; }
    set { 
        p_ListaMonitorErogazioni2 = value;
        base.RaisePropertiesChanged("ListaMonitorErogazioni2"); 
    }
}

allRecords = (from r in MainWindow.dbContext.ArchivioErogazioni select r).ToList();

ListaMonitorErogazioni2 = new ObservableCollection<ArchivioErogazioniForList>(allRecords.Where(x => x.DATA_EROG >= startDate && x.DATA_EROG <= endDate).Select(x => new ArchivioErogazioniForList(x)));
Run Code Online (Sandbox Code Playgroud)

差异在哪里?第一个片段给出了错误"System.NotSupportedException:LINQ to Entities中仅支持无参数构造函数和初始值设定项."

c# linq parameters entity-framework

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

将SQL Server 2014 Express软件包安装为ClickOnce必备软件

我正在使用clickOnce并与之一起部署安装程序。

我尝试了各种设置。可以将SQL Server 2008 Express和SQL Server 2012 Express用作必备组件(我下载了它们并设置了clickonce选项“从相同的应用程序路径下载必备组件”)。

现在,我正在尝试对SQL Server 2014 Express执行相同的操作。

由于SQL Server 2014 Express软件包在2008年和2012年版本中并不是很糟糕,因此我尝试创建它。

我已经做完了,而且似乎可以使用,但是在安装时却给出了错误号-2054422506。这是一个非常普通的错误,我不理解。

出现一个弹出窗口,表明安装已停止,因为这是安装SQL Server Express 2014并在日志中查找更多信息的错误。日志仅显示:

Installing using command     
'C:\Users\VIRTUA~1\AppData\Local\Temp\VSD24F4.tmp\SqlExpress2014\
SQLEXPR32_x86_ITA.EXE' and parameters '/q /action=Install /features=SQL 
/instancename=SQLEXPRESS /securitymode=SQL /sapwd=passwd  
/sqlsvcaccount="NT Authority\Network Service'
Process exited with code -2054422506
Status of package 'SQL Server 2014 Express' after install is 'InstallFailed'
Run Code Online (Sandbox Code Playgroud)

因此,我尝试不使用ClickOnce手动安装SQL Server 2014 Express,并且它可以正常工作。所以我想我在软件包的xml文件中有些混乱。

我的软件包是这样构建的(在C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v8.1A \ Bootstrapper \ Packages中):

\SqlExpress2014
     \it
         -SQLEXPR32_x86_ITA.exe
         -SQLEXPR_x64_ITA.exe
         -eula.rtf
         -package.xml …
Run Code Online (Sandbox Code Playgroud)

c# sql-server deployment clickonce sql-server-2014

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

实体框架,按日期/周/月分组,在日期时间工作

正如标题所说,我的表中有一个日期时间列。

在三种不同的情况下,我需要以三种方式按我的记录分组:

  1. 按天分组
  2. 按周分组
  3. 按月分组

如果可能,我如何在实体框架中使用 lambda 表达式执行这 3 个不同的 group by 语句?

更新:链接的问题是重复的,不是真正的重复。我要求使用 lambda 解决方案,但链接中没有它

c# sql sql-server datetime entity-framework

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

使用 Entity Framework Core 进行审计跟踪

我有一个在 SQL Server 数据库上使用实体框架核心的 ASP.NET 核心 2.0。

我必须跟踪和审计用户对数据所做的所有事情。我的目标是拥有一个自动机制来记录所有正在发生的事情。

例如,如果我有表 Animals,我想要一个并行表“Audit_animals”,您可以在其中找到有关数据、操作类型(添加、删除、编辑)和创建此操作的用户的所有信息。

这次我已经在Django + MySQL中做了,但现在环境不同了。我发现了这一点,看起来很有趣,但我想知道是否有更好的方法,以及哪种方法是在 EF Core 中执行此操作的最佳方法。

更新

我正在尝试这个并且发生了一些事情,但我有一些问题。

我加了这个:

  1. services.AddMvc().AddJsonOptions(options => {
    
                options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
            }); 
    
    Run Code Online (Sandbox Code Playgroud)
  2. public Mydb_Context(DbContextOptions<isMultiPayOnLine_Context> options) : base(options)
    {
        Audit.EntityFramework.Configuration.Setup()
            .ForContext<Mydb_Context>(config => config
                .IncludeEntityObjects()
                .AuditEventType("Mydb_Context:Mydb"))
            .UseOptOut()
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. public MyRepository(Mydb_Context context)
    {
        _context = context;
        _context.AddAuditCustomField("UserName", "pippo");
    
    }
    
    Run Code Online (Sandbox Code Playgroud)

我还创建了一个表来插入审计(只有一个表来测试这个工具),但我唯一得到的是你在图像中看到的。包含我创建的数据的 json 文件列表.... 为什么?

在此处输入图片说明

sql-server audit entity-framework-core asp.net-core audit.net

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

HOW TO:实体框架的动态连接字符串

喜欢标题。我该怎么做?

我尝试了一些东西,但是没有按我预期的那样工作。

我正在使用实体框架模型。我需要像参数一样传递连接字符串,因此,在另一个文件中,我编写了

namespace MyNamespace.Model
{
    using System;
    using System.Data.Entity;
    using System.Data.Entity.Infrastructure;

    public partial class MyEntities: DbContext
    {
        public MyEntities(string nameOrConnectionString) : base(nameOrConnectionString)
        {

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

启动应用程序时,我会以这种方式调用此构造函数,因此无论如何我都可以在应用程序中引用它:

public static MyEntities dbContext = new MyEntities(mdlImpostazioni.SetConnectionString());
Run Code Online (Sandbox Code Playgroud)

其中mdlImpostazioni.SetConnectionString()返回一个字符串(数据正确):

server=192.168.1.100\SVILUPPO;database=MyDB;uid=myName;pwd=111111;
Run Code Online (Sandbox Code Playgroud)

当我执行此代码时,似乎一切正常,但是当我尝试进行如下查询时:

var query = (from r in MainWindow.dbContext.TabTipoSistema select r);
Run Code Online (Sandbox Code Playgroud)

它从这里抛出异常:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    throw new UnintentionalCodeFirstException(); //exception here
}
Run Code Online (Sandbox Code Playgroud)

所以,这是一种糟糕的方法...正确的方法是?(仅使用代码C#,不使用xaml)

c# database connection wpf entity-framework

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

C# - 自定义引发事件的问题

我有我的课程,我定义了我的活动:

public class EventRaiserUtility
{
    public event EventHandler updateList;

    public void updateListEvent()
    {
        if (updateList != null)
        {
            updateList(this, EventArgs.Empty);
        }
    }
    public static EventRaiserUtility raiser = new EventRaiserUtility();
}
Run Code Online (Sandbox Code Playgroud)

这就是我举起活动的地方:

EventRaiserUtility.raiser.updateListEvent();
Run Code Online (Sandbox Code Playgroud)

最后这是我正在尝试创建监听器的地方:

...
EventRaiserUtility.raiser.updateList += new EventHandler(raiser_updateList);
//placed in the init method of another class
...

private void raiser_updateList(object sender, EventArgs e)
{
    connType = MainWindowViewModel.getTTC();
}
Run Code Online (Sandbox Code Playgroud)

简单地说:此事件必须在更新列表时通知,然后使用getTTC()with 更新另一个列表raiser_updateList.

但从raiser_updateList未被称为.为什么?我所有的3个代码段都在3个不同的类(同一个项目)中,但这不是问题......对吧?

c# wpf events event-handling custom-events

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

从ViewModel中闪烁图像

我想在用户点击按钮时给用户一些反馈,这会启动一个很长的请求.

我正在使用带有mvvm的WPF,我想开始点击所点击的图像.

这是XAML代码:

<Button Style="{DynamicResource BtnToolBar}" Command="{Binding refreshAll}">
     <Image x:Name="imgUpd" Style="{DynamicResource ImageStyleUpd}" ToolTip="{StaticResource UpdateData}"/>
</Button>
Run Code Online (Sandbox Code Playgroud)

我喜欢这样的东西:

isBlinking="{Binding isBlinking}"
Run Code Online (Sandbox Code Playgroud)

它存在吗?如何从ViewModel中制作闪烁的图像?可能吗?

编辑:我用我找到的解决方案写了这个.

wpf xaml mvvm viewmodel

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

递归函数的奇怪行为

我有这个代码:

    public void myFunction(String label, String type, string command, int attempts = 0)
    {
        try
        {
            Utility.Logger("myFunction attempt " + attempts.ToSafeString() + " label " + label + " type " + type, command);
            ...stuff...
        }
        catch (Exception e)
        {
            if (attempts < 10)
                return myFunction(label, type, command, attempts++);
            else
                return null;
        }
    }
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我在catch分支中有一个递归调用,在这里我设置一个参数一个counter = counter + 1.

奇怪的是我在日志中总是尝试= 0.为什么?我错过了什么?

c# recursion flow

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