小编wog*_*les的帖子

如果数据保持不变,有没有办法为同一个SQL查询获得不同的结果?

当我运行它时间歇性地得到不同的结果集...有时它给出1363,有时1365,有时1366结果.数据不会改变.可能导致这种情况的原因是否有办法防止它?查询看起来像这样:

SELECT * 
FROM 
    (
            SELECT  
                        RC.UserGroupId,
                        RC.UserGroup,
                        RC.ClientId AS CLID,                     
                        CASE WHEN T1.MultipleClients = 1 THEN RC.Salutation1 ELSE RC.DisplayName1 END AS szDisplayName,
                        T1.MultipleClients,
                        RC.IsPrimaryRecord,
                        RC.RecordTypeId,
                        RC.ClientTypeId,
                        RC.ClientType,
                        RC.IsDeleted,
                        RC.IsCompany,                                            
                        RC.KnownAs,
                        RC.Salutation1,
                        RC.FirstName, 
                        RC.Surname,                   
                        Relationship, 
                        C.DisplayName Client,
                        RC.DisplayName RelatedClient, 
                        E.Email,                                                            
                        RC.DisplayName  + ' is the ' + R.Relationship + ' of ' + C.DisplayName Description,
                        ROW_NUMBER() OVER (PARTITION BY E.Email ORDER BY Relationship DESC) AS sequence_id


            FROM 
                        SSDS.Client.ClientExtended C 
                                                                              INNER JOIN 
                        SSDS.Client.ClientRelationship R WITH (NOLOCK)ON C.ClientId = R.ClientID 
                                                                              INNER JOIN …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server-2008

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

创建新的VSTO加载项选项卡而不是重命名

我们有一个MS word addin,它当前使用并重命名Word中的加载项选项卡(到i-report).这样做的问题是,如果客户端安装了其他插件,其插件中的色带也会显示在i-report选项卡下.

是否有一种简单的方法可以专门使用新选项卡而不是重命名加载项选项卡?

设计器中选项卡的代码如下所示:

        this.tabiReport = new Microsoft.Office.Tools.Ribbon.RibbonTab();
        this.tabiReport.SuspendLayout();

        this.tabiReport.ControlId.ControlIdType = Microsoft.Office.Tools.Ribbon.RibbonControlIdType.Office;
        this.tabiReport.Groups.Add(this.grpConnection);         
        resources.ApplyResources(this.tabiReport, "tabiReport");
        this.tabiReport.Name = "tabiReport";
Run Code Online (Sandbox Code Playgroud)

编辑:我认为这与功能区的Tabs集合的位置有关.我已经尝试将tabiReport的位置从默认更改为BeforeOfficeId和AfterOfficeId,但是在调试时我可以在启动时看到插件加载,但功能区上没有选项卡.

我也尝试使用AfterOfficeId,然后使用"TabView"填充OfficeId字段,尝试在视图选项卡后显示它,但它仍然没有显示.有任何想法吗?

编辑2:好的我已经弄清楚应该如何完成:通过在选项卡上将ControlIdType属性设置为自定义,但我仍然有相同的问题,它没有显示.

vsto

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

是否需要静态List <WeakReference>?

我正在使用ILSpy对使用vb.net编写的旧Windows服务进行逆向工程.我想用C#重写遗留服务.原始服务泄漏内存.

当我查看源代码时,服务类中有以下声明:

private static List<WeakReference> __ENCList = new List<WeakReference>();
Run Code Online (Sandbox Code Playgroud)

此列表仅用于构造函数中,如下所示(imineRun是服务类):

List<WeakReference> _ENCList = imineRun.__ENCList;
            Monitor.Enter(_ENCList);
            try
            {
                imineRun.__ENCList.Add(new WeakReference(this));
            }
            finally
            {
                Monitor.Exit(_ENCList);
            }
Run Code Online (Sandbox Code Playgroud)

这个列表可能导致内存泄漏吗?这个清单是否需要,目的是什么?

c# multithreading windows-services weak-references

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

Linq to Objects DateTime除了忽略时间

我有一个2 List<DateTime>,想要返回不在第二个列表中但忽略时间的第一个列表的子集。

是否可以使用Except扩展方法执行此操作?

var missingDates = dateList1.Except(dateList2);
Run Code Online (Sandbox Code Playgroud)

我需要将两个列表中的时间都设置为00:00:00还是可以使用该.Date属性进行比较?

c# linq

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

Ninject在Web服务中注入服务接口

我的项目中有一个Web服务,用于将json数据返回给ajax调用.

注入我的ClientService在常规页面上工作正常,但如何让它在Web服务中工作?

NinjectWebCommon.cs:

 private static void RegisterServices(IKernel kernel)
        {
            kernel.Bind<IClientService>().To<ClientService>();
        }  
Run Code Online (Sandbox Code Playgroud)

Default.aspx.cs:有效!

public partial class _Default : System.Web.UI.Page
    {
 [Inject]
        public IClientService clientService { get; set; } 
Run Code Online (Sandbox Code Playgroud)

MyWebservice.asmx:NullReferenceException(clientService为null)

 public class MyWebService: System.Web.Services.WebService
    {     
        [Inject]
        public IClientService clientService { get; set; } 


 [WebMethod, ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public MyObject GetClients(int id)
        {
            var list = clientService.GetClients(id);
Run Code Online (Sandbox Code Playgroud)

asp.net webforms ninject

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

带有线程的c#实体框架

我必须在数百万行数据上运行一次C#计算,并将结果保存在另一个表中.我在几年内没有使用过C#中的线程.我正在使用.NET v4.5和EF v5.

原始代码的含义如下:

public static void Main()
{
    Stopwatch sw = new Stopwatch();
    sw.Start();
    Entities db = new Entities();
    DoCalc(db.Clients.ToList());
    sw.Stop();
    Console.WriteLine(sw.Elapsed);
}

private static void DoCalc(List<Client> clients)
{
Entities db = new Entities();    
    foreach(var c in clients)
    {
       var transactions = db.GetTransactions(c);
       var result = calulate(transactions); //the actual calc
       db.Results.Add(result);
       db.SaveChanges();
    }    
}
Run Code Online (Sandbox Code Playgroud)

以下是我对多线程的尝试:

private static int numberOfThreads = 15;

public static void Main()
{
    Stopwatch sw = new Stopwatch();
    sw.Start();
    Entities db = new Entities();

    var splitUpClients …
Run Code Online (Sandbox Code Playgroud)

c# multithreading entity-framework thread-safety

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

单元测试IdentityContext

我最近重写了一个MVC 4应用程序作为MVC 5,以便我可以使用ASP.NET身份.我的旧测试设置如下(我在测试项目中没有连接字符串)

背景:

public class MyDbContext: DbContext {
public MyDbContext() : base("name=DefaultContext") {}...
Run Code Online (Sandbox Code Playgroud)

测试:

var mockVoteSet = new Mock<DbSet<Vote>>();

var mockContext = new Mock<MyDbContext> { CallBase = true };
mockContext.Setup(c => c.Votes).Returns(mockVoteSet.Object);        

var service = new VoteService(mockContext.Object);

var result = service.Vote(1, "1", false);    
//then assert result
Run Code Online (Sandbox Code Playgroud)

这工作得很好,我的所有测试都通过了.

因为移动我的上下文现在继承自IdentityDbContext:

public class MyDbContext: IdentityDbContext<User> {       
        public MyDbContext() : base("name=DefaultContext") { } ...
Run Code Online (Sandbox Code Playgroud)

我现在在测试中将上下文的模拟传递给服务时出错:

在应用程序配置文件中找不到名为"DefaultContext"的连接字符串.

我怎么能绕过这个?

c# moq mocking asp.net-identity

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

多个模型的MVC显示模板

为了跟上DRY原则,我在多个视图中生成了一些html,我将其移动到了显示模板中.

由于不同的视图具有不同的模型,我如何使显示模板通用?属性名称相同.

说我有这两个型号:

public class ListModel
{
 public bool Prop1 {get;set;}
 public bool Prop2 {get;set;}
}

public class DisplayModel 
{
 public bool Prop1 {get;set;}
 public bool Prop2 {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

这是我的显示模板 - 如何使这更通用 - 我需要它能够接受任何具有相同属性名称的模型?

@model ListModel
{
 if(Model.Prop1)
 {
  <div>Prop1!</div>
 }
 if(Model.Prop2)
 {
  <div>Prop2!</div>
 }
Run Code Online (Sandbox Code Playgroud)

}

这些是我的2个视图:列表和显示

列表:

@model ListModel

@DisplayFor(@Model, "CustomDisplayTemplate")
Run Code Online (Sandbox Code Playgroud)

显示:

@model DisplayModel

@DisplayFor(@Model, "CustomDisplayTemplate") //will currently break as the custom display template expects a ListModel
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc razor asp.net-mvc-5

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

在TFS 2010中构建VB6项目 - 正确的方法?

我一直在为我们旧的VB6 COM组件设置自动构建.

我已经成功安装了TFS 2010的MSSCCI提供程序,并且可以在Visual Basic IDE中成功检入并检出存储库中的代码.

我的存储库包含1个团队项目(称为VB6),每个VB6项目都有单独的目录.

当有人检查任何VB6项目的任何更改时,我希望能够在Team Project中构建所有VB6项目(我确信我可以通过在构建定义中设置多个构建来实现这一点).

据我所知,有两种方法可以使其工作: 编辑构建模板或使用MSBuild扩展包

  1. 这两个都需要我在构建机器上安装VB6编译器吗?
  2. 哪个是TFS 2010,MSBuild v4的首选方法?

我更喜欢编辑构建模板而不是安装扩展包.

vb6 msbuild vb6-migration tfs2010

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

淘汰js ko.toJSON在IE7中不起作用

这是一个淘汰赛的错误吗?

<h2>Debugging Variables</h2>
<div data-bind="text: ko.toJSON($root, null, 2)">
</div>
Run Code Online (Sandbox Code Playgroud)

在兼容模式下查看我的页面时出现以下错误:

Microsoft JScript运行时错误:无法解析绑定.消息:[对象错误]; 绑定值:text:ko.toJSON($ root,null,2)

兼容模式关闭时工作正常.

knockout.js

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