为什么这会给我无参数的构造函数错误?
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中仅支持无参数构造函数和初始值设定项."
我正在使用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) 正如标题所说,我的表中有一个日期时间列。
在三种不同的情况下,我需要以三种方式按我的记录分组:
如果可能,我如何在实体框架中使用 lambda 表达式执行这 3 个不同的 group by 语句?
更新:链接的问题是重复的,不是真正的重复。我要求使用 lambda 解决方案,但链接中没有它
我有一个在 SQL Server 数据库上使用实体框架核心的 ASP.NET 核心 2.0。
我必须跟踪和审计用户对数据所做的所有事情。我的目标是拥有一个自动机制来记录所有正在发生的事情。
例如,如果我有表 Animals,我想要一个并行表“Audit_animals”,您可以在其中找到有关数据、操作类型(添加、删除、编辑)和创建此操作的用户的所有信息。
这次我已经在Django + MySQL中做了,但现在环境不同了。我发现了这一点,看起来很有趣,但我想知道是否有更好的方法,以及哪种方法是在 EF Core 中执行此操作的最佳方法。
更新
我正在尝试这个并且发生了一些事情,但我有一些问题。
我加了这个:
services.AddMvc().AddJsonOptions(options => {
options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
});
Run Code Online (Sandbox Code Playgroud)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)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
喜欢标题。我该怎么做?
我尝试了一些东西,但是没有按我预期的那样工作。
我正在使用实体框架模型。我需要像参数一样传递连接字符串,因此,在另一个文件中,我编写了
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)
我有我的课程,我定义了我的活动:
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个不同的类(同一个项目)中,但这不是问题......对吧?
我想在用户点击按钮时给用户一些反馈,这会启动一个很长的请求.
我正在使用带有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中制作闪烁的图像?可能吗?
编辑:我用我找到的解决方案写了这个.
我有这个代码:
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# ×6
sql-server ×3
wpf ×3
asp.net-core ×1
audit ×1
audit.net ×1
clickonce ×1
connection ×1
database ×1
datetime ×1
deployment ×1
events ×1
flow ×1
linq ×1
mvvm ×1
parameters ×1
recursion ×1
sql ×1
viewmodel ×1
xaml ×1