这是我正在使用的查询:
DELETE TB1.*, TB2.*
FROM TB1
INNER JOIN TB2 ON TB1.PersonID = TB2.PersonID
WHERE (TB1.PersonID)='2'
Run Code Online (Sandbox Code Playgroud)
它在MS Access中工作正常但在SQL Server Express 2005中收到错误(','.附近的语法不正确).
怎么解决?请帮忙.
我开始使用IoC/Mocking,我希望确保我的存储库使用"最佳实践".
我正在为我的存储库设置接口.具体实现将指向SQL,而测试将使用Moq生成"假货".我注意到,我使用起订量的回调功能一个不少.在这篇文章中,作者说.
由于Moq为您希望做的大多数事情提供了这两个领域的功能,因此您需要这些工具并没有太多不同的点.事实上,如果你认为你需要使用"回调",你可能会看起来有点难以看到Moq是否可以自动执行你想做的事情.
我已经看过了,看不到任何其他方式来实现我需要的东西 - 即'假的'存储库.有人可以告诉我这里有什么东西吗?有没有办法在没有回调的情况下实现这一目标?
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
// Arrange
var mock = ContactRepositoryFake();
// Act
mock.Object.AddContact(new Contact() { Name = "bill" });
mock.Object.AddContact(new Contact() { Name = "jane" });
// Assert
Assert.IsTrue(mock.Object.AllContacts.Count() == 2);
}
public Mock<IContactRepository> ContactRepositoryFake()
{
var _allContacts = new List<Contact>();
var mock = new Mock<IContactRepository>();
mock.Setup(x=>x.AddContact(It.IsAny<Contact>()))
.Callback((Contact c) =>
{
_allContacts.Add(c);
});
mock.Setup(x => x.AllContacts).Returns(_allContacts);
return mock;
}
}
public interface IContactRepository
{
void …Run Code Online (Sandbox Code Playgroud) 我正在尝试将ReferralContract.AssessmentId属性映射到Referral.Assessment.Id以下代码有效,但我确信有更清洁的方法....请告诉我这是如此;-)
// Destination classes
public class Referral
{
public Referral()
{
Assessment = new Assessment();
}
public int Id { get; set; }
public Assessment Assessment { get; set; }
}
public class Assessment
{
public int Id { get; set; }
}
// Source Class
public class ReferralContract
{
public int Id { get; set; }
public int AssessmentId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我正在使用的Automapper映射是
Mapper.CreateMap<ReferralContract, Referral>()
.ForMember(x => x.Assessment,
opt => opt.MapFrom(scr => new Assessment { Id = …Run Code Online (Sandbox Code Playgroud) 我正在比较两个SQL服务器数据库(分别是开发和实时环境,SQL2005和SQL2008)来检查两者之间的差异.如果我为每个数据库生成一个脚本,我可以使用简单的文本比较来突出显示差异.
问题是脚本需要以相同的顺序来简化比较并避免存储过程的顺序不同的简单差异,但它们的内容是相同的.
所以如果我从开发中生成这个:
1: CREATE TABLE dbo.Table1 (ID INT NOT NULL, Name VARCHAR(100) NULL)
2: CREATE TABLE dbo.Table2 (ID INT NOT NULL, Name VARCHAR(100) NULL)
3: CREATE TABLE dbo.Table3 (ID INT NOT NULL, Name VARCHAR(100) NULL)
Run Code Online (Sandbox Code Playgroud)
这来自现场:
1: CREATE TABLE dbo.Table1 (ID INT NOT NULL, Name VARCHAR(100) NULL)
2: CREATE TABLE dbo.Table3 (ID INT NOT NULL, Name VARCHAR(100) NULL)
3: CREATE TABLE dbo.Table2 (ID INT NOT NULL, Name VARCHAR(100) NULL)
Run Code Online (Sandbox Code Playgroud)
比较两个突出显示第2行和第3行是不同的,但它们实际上是相同的,只是生成脚本向导在实时环境中的表2之前执行了table3.添加100个表,存储过程,视图等,这很快变得一团糟.
我目前的选择是:
希望我只是错过了"按名称排序脚本"的复选框,但我看不到任何可以做到这一点的内容.我觉得我不应该为"排序输出"选项或许多其他不需要的工具这样简单的事情付费,所以选项4应该是最后的选择.
编辑 我可以完全访问这两种环境,但实时环境被锁定并托管在虚拟服务器上,远程桌面是实时访问的典型方式.我的偏好是将我可以复制到开发中并进行比较.我可以为数据库中的每种类型的对象生成脚本作为单独的文件(表,SP,函数等)
我在Kendo UI网格上遇到了这个奇怪的问题.我有一个可过滤的网格,但它在模态内.但问题是当我过滤一个列(文本列)时,我无法在过滤器文本框中键入.这很奇怪,因为在所有浏览器中它都不起作用.这是我的例子repro
<div class="container">
<h3>Modal Example</h3>
<div>
<a href="#myModal1" role="button" class="btn" data-toggle="modal">Launch Modal</a>
</div>
<!-- Modal -->
<div id="myModal1" class="modal hide" tabindex="-1" role="dialog">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3>Kendo Not working on Modal</h3>
</div>
<div class="modal-body">
<div id="grid" style="height:300px;"></div>
</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
<button class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
var sharedDataSource = new kendo.data.DataSource({
data: [
{ id: 1, value: 10, item: "Item1" },
{ id: 2, value: 12, item: "Item2" },
{ …Run Code Online (Sandbox Code Playgroud) 我是AutoMapper的新手,我正试图解决一个问题.
如果我有这样的源类:
public class Membership
{
public int MembershipId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string OrganizationName { get; set; }
public List<Address> Addresses { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Address类看起来像这样:
public class Address
{
public int AddressId{ get; set; }
public int RefAddressTypeId { get; set; }
public string AddressLine1 { get; set; }
public string AddressLine2 { get; set; }
public string City { get; set; …Run Code Online (Sandbox Code Playgroud) 使用共享相同事件处理程序的 FileSystemWatchers 安全吗?
让多个 FileSystemWatcher 使用相同的事件处理程序监视不同的目录是否安全?
Class Snippets
Private _watchPaths As New List(Of String) From {"x:\Dir1", "x:\Dir2"}
Private _watchers As List(Of FileSystemWatcher)
Private _newFiles As New BlockingCollection(Of String)
Sub Watch()
Dim _watchPaths As New List(Of String) From {"x:\Dir1", "x:\Dir2"}
Dim watchers As List(Of FileSystemWatcher)
For Each path In _watchPaths
Dim watcher As New FileSystemWatcher
AddHandler watcher.Created, Sub(s, e)
_trace.DebugFormat("New file {0}", e.FullPath)
'Do a little more stuff
_newFiles.Add(e.FullPath)
End Sub
Next
End Sub
End Class
Run Code Online (Sandbox Code Playgroud)
或者我们必须将 FileSystemWatcher 包装在如下所示的类中以使事件处理程序线程安全?
Class FileWatcher …Run Code Online (Sandbox Code Playgroud) 我在代码中找到了这样的查询:
SELECT *
FROM a
RIGHT JOIN b ON a.id = b.id
WHERE a.id = b.id
Run Code Online (Sandbox Code Playgroud)
它与a.id = b.id上的内连接基本相同吗?
我正在尝试查询以显示学生的出勤记录.这些是我的表.

这是我到目前为止开始的......
我正在将studentId(StudentCalendar)列表与学校开放日期(DateCollection)匹配,然后记录错过的天数(出勤率).
我最终得到这样的东西..
SELECT s.personid,
dc.calendarid,
dc.[date],
coalesce(absentMinutes,0) AS absentMinutes
FROM [dbo].[StudentCalendar] s
INNER JOIN [dbo].[DateCollection] dc ON s.calendarId = dc.calendarId
LEFT JOIN [dbo].[Attendance] a ON a.dateOccurred = dc.[date]
AND a.personId = s.personId
Run Code Online (Sandbox Code Playgroud)

我现在有一份学生名单,每天都有学校开放.我的问题是并非每个学生都注册了整个学年.
有没有办法让我只能将学生列表(StudentCalendar)与学校开放日期(DateCollection)匹配,当它在每个学生的学生日历startDate和endDate(日历)中给出的范围内?
像这样的东西..

我有一个方法,我做以下事情
然而,尽管参数没有变化(只有值改变),方法的执行时间也在不断增加.
以下是我的方法的内容:
sw.Start();
details.EffectiveDate = cb.Attribute("dte_effective").Value.GetDate();
details.EndDate = cb.Attribute("dte_end").Value.GetDate();
details.MaxRefills = cb.Attribute("qty_refill").Value.ToIntOrNull();
details.Sex = cb.Attribute("cde_sex").Value == "B" || string.IsNullOrWhiteSpace(cb.Attribute("cde_sex").Value) ? (string)null : cb.Attribute("cde_sex").Value.Substring(0, 1);
details.RxLimit = cb.Attribute("cde_rx_limit").Value.ToBoolOrNull();
details.WEAC = fullDoc.Descendants("weacPrice").Select(d => (decimal?)decimal.Parse(d.Attribute("amt_npt_price").Value)).FirstOrDefault();
details.EAC = fullDoc.Descendants("eacPrice").Select(d => (decimal?)decimal.Parse(d.Attribute("amt_npt_price").Value)).FirstOrDefault();
details.FederalMAC = fullDoc.Descendants("fulPrice").Select(d => (decimal?)decimal.Parse(d.Attribute("amt_mac").Value)).FirstOrDefault();
details.StateMAC = fullDoc.Descendants("macPrice").Select(d => (decimal?)decimal.Parse(d.Attribute("amt_mac").Value)).FirstOrDefault();
//there are few more
var currRestrictions = db.NDCDiagRestrictions.Where(n => n.NDC == NDC).ToList();
var newRestrictions = fullDoc.Descendants("diagRestriction")
.Select(d => new NDCDiagRestriction()
{
NDC = NDC,
DiagFrom = long.Parse(d.Attribute("cde_diag_from").Value),
DiagTo = …Run Code Online (Sandbox Code Playgroud) 我有以下powershell脚本来计算给定目录中每个文件的行数:
dir -Include *.csv -Recurse | foreach{get-content $_ | measure-object -line}
Run Code Online (Sandbox Code Playgroud)
这给了我以下输出:
Lines Words Characters Property
----- ----- ---------- --------
27
90
11
95
449
...
Run Code Online (Sandbox Code Playgroud)
每个文件的计数很好(我不需要单词,字符或属性),但我不知道计数的文件名是什么.
理想的输出是这样的:
Filename Lines
-------- -----
Filename1.txt 27
Filename1.txt 90
Filename1.txt 11
Filename1.txt 95
Filename1.txt 449
...
Run Code Online (Sandbox Code Playgroud)
如何将文件名添加到输出中?
这是我的观点
SELECT e.Text AS StatusText,
a.Created AS [DATE],
a.Username,
b.Name AS CustomerName,
c.Name AS ServiceName,
d.Message AS DeviationMessage
FROM dbo.StatusUpdate AS a
LEFT OUTER JOIN dbo.Customer AS b ON a.CustomerId = b.CustomerID
LEFT OUTER JOIN dbo.Service AS c ON a.ServiceId = c.ServiceID
LEFT OUTER JOIN dbo.Deviation AS d ON a.DeviationId = d.DeviationID
LEFT OUTER JOIN dbo.StatusText AS e ON a.Status = e.ID
Run Code Online (Sandbox Code Playgroud)
我想要做的是:当a.Status(int)是2或3时,我想强制a.Username显示为NULL.我该怎么办呢?
sql ×4
sql-server ×3
.net ×2
automapper ×2
c# ×1
join ×1
kendo-grid ×1
kendo-ui ×1
moq ×1
performance ×1
powershell ×1
sql-view ×1
t-sql ×1