我有一个数据集表,其中包含多行数据,如下所示
ItemId Code StatusId
-------------------- ---------------------------------------------
62224 NC0860000 8
62225 NC0860000 8
62226 NC0860000 8
62227 NC0860200 5
62228 NC0860000 5
62229 NC0860000 5
62230 NC0860000 5
Run Code Online (Sandbox Code Playgroud)
我想要完成的是输出结果
NC0860000 8 3 (code, status, count)
NC0860000 5 3
Run Code Online (Sandbox Code Playgroud)
我不完全理解分组在EF中是如何工作的.我可以使用查询获取密钥和单个组的计数:
var results = (from ssi in ctx.StageSubmitItems
join s in ctx.StageSubmissions on ssi.SubmissionId equals s.SubmissionId
where s.ContributorCode == contributorId
group ssi.SubmitItemId by ssi.AgencyCode into g
select new {AgencyCode = g.Key, Count = g.Count() }).ToList();
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何按代码分组,然后按StatusId分组,然后按状态生成总行数.
我很感激有关如何在查询中查看如何完成此操作或我正在做什么的任何建议.
在项目中定义新类时,这样做的正确/最佳实践是什么?在过去,我创建了以下类:
public class MyClass
{
public string FirstName {get; set;}
public string LastName {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
通常我会使用这样的类来创建项目中的集合.
然而,随着我继续学习和阅读有关c#sharp的更多内容,我看到了将类定义为的示例:
class MyClass //not set to public
{
private string _firstName; //first defined as fields
private string _lastName;
public string FirstName // then defined as properties
{
get { return _firstName; }
set { _firstName = value; }
}
public string LastName
{
get { return _lastName; }
set { _lastName = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
第一种方法在定义上是否不正确,或者这是C#中可接受的速记版本?作为最佳实践,您应该首先使用私有字段定义类,然后使用get/set为值将它们定义为属性?
我问,因为我在C#自学,我正在努力改进,以及更好地理解正确的开发方法,一些样本和教程只是简单地陈述方法没有一个可靠的解释为什么一种方法是首选(或应该是完成)另一个.
提前致谢
我试图创建一个WPF应用程序,它将作为一个内的用户控制DataTemplate
的ListBoxItem
.用户用4 TextBlock
秒控制网格.此控件还包含其他形状和图像,用于视觉辅助比任何东西,所以为了清楚起见,我在这个问题的代码中省略了它们.
当我在mainwindow.xaml上删除用户控件时,我可以看到控件,正确绑定的字段指向数据源中的第一条记录.我想要做的是在数据库中的每个记录的列表框或包装面板中重复使用此控件.
任何人都可以向我提供如何将用户控件呈现为控件/其他面板DataTemplate
内的指针或示例ListBox
.
到目前为止,我已经尝试了以下但无济于事:提前感谢任何提示.
<!--within Window.Resource -->
<DataTemplate x:Key="myActivity">
<local:ucActivityItm /> <!--usercontrol -->
</DataTemplate>
<!-- Listbox within the window -->
<ListBox HorizontalAlignment="Stretch" ItemTemplate="{DynamicResource myActivity}" VerticalAlignment="Stretch">
<ListBoxItem>
<!-- control also added for testing to ensure it rendered out-->
<local:ucActivityItm />
</ListBoxItem>
</ListBox>
Run Code Online (Sandbox Code Playgroud) 我有一个treeview指令归功于http://codepen.io/bachly/pen/KwWrzG 作为我的起始块.当我向集合中添加对象时,我正在尝试更新.我可以更新对象并插入新对象,但是一旦$scoped
项目更新,就不会调用treeview指令.最终,所使用的数据将来自服务,此时我只是使用模拟数据进行测试.
原始集合看起来像这样
$scope.myList = {
children: [
{
name: "Event",
children: [
{
name: "Event Date",
parent:"Event",
children: [
{
name: "2008",
filterType: '_eventStartDate',
parent: 'Event'
},
{
name: "2009",
filterType: '_eventStartDate',
parent: 'Event'
}
]
},
{
name: "Event Attendee",
parent: "Event",
children: [
{
name: "Person 1",
filterType: '_eventAttenddeeName',
parent: 'Event Attendee'
},
{
name: "Person 2",
filterType: '_eventAttenddeeName',
parent: 'Event Attendee'
}
]
}
]
}]
};
var TheOtherCollection = {
children: [ …
Run Code Online (Sandbox Code Playgroud) 我有一个测试集合设置为:
ObservableCollection<Person> MyselectedPeople = new ObservableCollection<Person>();
public MainWindow()
{
InitializeComponent();
FillData();
}
public void FillData()
{
Person p1 = new Person();
p1.NameFirst = "John";
p1.NameLast = "Doe";
p1.Address = "123 Main Street";
p1.City = "Wilmington";
p1.DOBTimeStamp = DateTime.Parse("04/12/1968").Date;
p1.EyeColor = "Blue";
p1.Height = "601";
p1.HairColor = "BRN";
MyselectedPeople.Add(p1);
}
Run Code Online (Sandbox Code Playgroud)
一旦我构建了这个集合,我希望能够将Observable Collection转换为List类型.
这背后的原因是我的主要项目是接收带有数据的通用列表,我必须将其转换为Observable集合,以便在gridview,列表框等中使用.在UI中选择数据,然后将其发送回原始程序集以供进一步使用.
基于之前关于将toastr注入您的应用程序/控制器的SO文章.我已经设置了我的app.js如下:
(function () {
app = angular.module("app", ['breeze.angular']).value('ngToastr', toastr);
//added toaster as factory so it can be injected into any controller
angular.module('app').factory('ngNotifier', function (ngToastr) {
return {
notify: function (msg) {
ngToastr.success(msg);
},
notifyError: function (msg) {
ngToastr.error(msg);
},
notifyInfo: function (msg) {
ngToastr.info(msg);
}
}
});
})();
Run Code Online (Sandbox Code Playgroud)
作为所述答案之一,我现在可以从任何控制器访问toastr控件.
app.controller('reportController', function ($scope, reportLibraryService, ngNotifier, $log) {
//report section
var rvm = this;
rvm.getReportList = GetReportList;
rvm.onError = OnError;
rvm.onReportComplete = OnReportComplete;
$scope.userId = 1;
GetReportList($scope.userId);
function …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下查询从两个表中删除几行
Delete top(3) ss
from stage.SubmitItemData ss
INNER JOIN stage.SubmitItems s (NOLOCK) on ss.SubmitItemId = s.SubmitItemId
where s.AgencyCode = 'NC0860000' and s.StatusId = 8
Run Code Online (Sandbox Code Playgroud)
我被难住的地方是,如果我删除参数s.AgencyCode
并且s.StatusId
查询执行没有问题。但是,如果我添加这些参数,我会得到(0) rows affected.
我想要做的就是控制在任何给定时间删除的记录数。top(n) 不是最好的方法,因为它看起来好像需要订购才能工作?为这种类型的删除创建一个循环会更好吗?
感谢您的任何建议。
我正在尝试创建一个伪报告,显示导入数据时的错误.要做到这一点,我有两个功能:
let createHtmlErrorReport = (err) => {
let currentDate = new Date().toLocaleString();
let contents = '<!DOCTYPE html> ' +
'<html>' +
'<head>' +
'<title>Import Inventory Import</title>' +
'<meta charset="utf-8" />' +
'<meta http-equiv="Content-Language" content="en">' +
'<style type="text/css">' +
' html { margin:0; }' +
' body { background-color:#d6d6d6; font: 10pt sans-serif;}' +
'ul li{ padding: 3px; font:12pt;}'+
' #header {padding:10px; background-color:#007fcc; color:#ffffff; } ' +
'</style>' +
'</head>' +
'<body>' +
'<div id="header">'+
'<strong>Import Inventory Import</strong>' +
'</div>' +
'<p><strong>Imported …
Run Code Online (Sandbox Code Playgroud) 在桌面应用程序中,我有一个切换按钮:
<ToggleButton x:Name="CFStglBtn" Checked="cfsCBox_Checked"
Unchecked="cfsCBox_Unchecked"
IsChecked="True" HorizontalAlignment="Left" Margin="5,0,0,0">
<StackPanel Orientation="Horizontal">
<Image Source="assets\telephone.png" Margin="3,0,0,0" />
<TextBlock Text="CFS" FontSize="10" Margin="5,5,5,0"
Foreground="DarkSlateGray"/>
</StackPanel>
</ToggleButton>
Run Code Online (Sandbox Code Playgroud)
对于Checked事件,我设置一个值,然后执行方法FilterView(); //省略代码
未经检查的状态正好相反.重置变量并再次执行该方法
我的问题是我注意到,当我取消选中切换按钮时,按钮继续脉冲或闪烁(从蓝色变为铬色),就好像它仍然具有焦点一样.按钮将保持这样,直到单击另一个按钮.
有没有办法去除这个焦点,以便当取消选中该按钮时,按钮返回到未检查状态,没有闪烁/脉冲颜色.
你如何解决这个问题或防止这种影响发生.
谢谢
在javascript中工作时,有人能为我提供关于测试平等/不平等和类型强制的良好参考或解释吗?
从我一直在阅读的内容中我看到使用eqeq(==)与eqeqeq(===)有两个思路的原则,有些人觉得你不应该使用eqeq并且总是使用eqeqeq因为它更安全.
我一直在玩一些基本的样本,我无法辨别差异或最好使用其中一个:
例如:这是我写的一些基本脚本.当我使用eqeq或eqeqeq测试时,我得到相同的结果.我还没有看到一个例子,我会得到不同的结果(即使用eqeq返回true,其中eqeqeq返回false).
function write(message){
document.getElementById('message').innerHTML += message +'<br/>';
}
var tim = { name: "tim" };
var tim2 = { name: "tim" };
//objects are equal to themselves ( == vs ==== eqeq or eqeqeq)
write("tim eq tim: " + (tim == tim)); //returns true
//objects are only equal to themselves regardless of containing value got that
write("tim eq tim2: " + (tim === tim2)); //returns false
//access the primative type to test true or false
write("tim value …
Run Code Online (Sandbox Code Playgroud) javascript ×3
wpf ×3
angularjs ×2
c# ×2
wpf-controls ×2
c#-3.0 ×1
datatemplate ×1
linq ×1
linq-to-sql ×1
properties ×1
sql-server ×1
t-sql ×1
toastr ×1
togglebutton ×1