小编wog*_*les的帖子

为什么在这个linq查询中没有使用可以为空的Guid工作?

我有这个代码来查找树的根节点:

Guid? currentNode = null; 
var root = db.RecursiveTrees.Where(x => x.ParentId == currentNode).ToList();
Run Code Online (Sandbox Code Playgroud)

此查询返回0结果.

如果我运行此查询,我会返回预期的行:

var root = db.RecursiveTrees.Where(x => x.ParentId == null).ToList();
Run Code Online (Sandbox Code Playgroud)

为什么第一个查询不起作用(使用最新版本的实体框架)?

编辑:

解决方法:

List<RecursiveTree> root;
if (nodeid == null)
   root = db.RecursiveTrees.Where(x => x.ParentId == null).ToList();
else
   root = db.RecursiveTrees.Where(x => x.ParentId == new Guid(nodeid)).ToList();     
Run Code Online (Sandbox Code Playgroud)

c# linq asp.net entity-framework

5
推荐指数
1
解决办法
1584
查看次数

SQL Tree在特定级别查找anscestors

说我有以下树:

CREATE TABLE Tree(Id int, ParentId int, Name varchar(20), Level int)

INSERT INTO Tree(Id, ParentId, Name, Level)
SELECT 1, NULL, 'Bob', 0 UNION ALL 
SELECT 2, 1, 'John', 1 UNION ALL
SELECT 3, 1, 'Bill', 1 UNION ALL
SELECT 4, 3, 'Peter', 2 UNION ALL
SELECT 5, 4, 'Sarah', 3
Run Code Online (Sandbox Code Playgroud)

我需要一个脚本来查找特定级别的给定节点的祖先:

例如,第2级Sarah的祖先是Peter,而0级的Peter的祖先是Bob.

使用分层CTE有一种简单的方法吗?sqlfiddle

sql t-sql sql-server sql-server-2008

5
推荐指数
1
解决办法
638
查看次数

Linq为什么连接字符串导致null?

我想到了"bill" + "john" + null == billjohn,但在我的这个例子中,它似乎正在评估为null:

 var clients = from client in taxPortalService.Client()
                          select new ClientViewModel
                              {                               
                                  ResidentialAddressLine1 = client.RESADDRESSLINE1,
                                  ResidentialAddressLine2 = client.RESADDRESSLINE2,
                                  ResidentialAddressLine3 = client.RESADDRESSLINE3,
                                  ResidentialAddressLine4 = client.RESADDRESSLINE4,
                                  ResidentialPostalCode = client.RESPOSTCODE,
                                  ResidentialCountry = client.RESCOUNTRY,
                                  IAResidentialAddress = client.RESADDRESSLINE1 + ", " + client.RESADDRESSLINE2 + ", " + client.RESADDRESSLINE3 + ", " + client.RESADDRESSLINE4 + ", " + client.RESPOSTCODE + ", " + client.RESCOUNTRY                               
                              };
Run Code Online (Sandbox Code Playgroud)

我错过了一些明显的东西吗?

在此输入图像描述

c# linq

5
推荐指数
2
解决办法
878
查看次数

MVCMailer smtp mailsettings以编程方式设置配置设置

MVCMailer使用web.config文件中的smtp设置,如下所示:

<system.net>
<mailSettings>
      <smtp from="some-email@gmail.com">
        <network enableSsl="true" host="smtp.gmail.com" port="587" userName="some-email@gmail.com" password="valid-password" />
      </smtp>
</mailSettings>
</system.net>
Run Code Online (Sandbox Code Playgroud)

控制器:

public virtual MvcMailMessage Welcome()
{
    //ViewBag.Data = someObject;
    return Populate(x => {
              x.ViewName = "Welcome";
              x.To.Add("some-email@example.com");
              x.Subject = "Welcome";
        });
}
Run Code Online (Sandbox Code Playgroud)

无论如何在代码中设置SMTP设置?我想避免在web.config文件中保存密码.

c# asp.net smtpclient mvcmailer asp.net-mvc-3

5
推荐指数
1
解决办法
2237
查看次数

PagedListPager传递其他模型数据

我有以下型号:

  public class PagedClientViewModel
    {
        public int? Page { get; set; }
        public PagedList.PagedList<ClientViewModel> Clients { get; set; }               
        public bool ShowAllClients { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

ShowAllClients是一个复选框,我将用它来进一步过滤从服务器返回的客户端列表.

 @Html.CheckBoxFor(model => model.ShowAllClients, new { id = "ShowAllClientsCheckbox" })
Run Code Online (Sandbox Code Playgroud)

这是我的寻呼机:

@Html.PagedListPager(Model.Clients, page => Url.Action("Index", new { Page = page }), PagedListRenderOptions.DefaultPlusFirstAndLast)
Run Code Online (Sandbox Code Playgroud)

寻呼机和复选框都在同一表格上.

我遇到的问题是,当我在寻呼机控件上更改页面时,复选框始终设置为false.发生这种情况是因为在Index操作中,ShowAllClients设置为false.

更改页面时如何保留复选框数据?

c# asp.net-mvc pagedlist

5
推荐指数
1
解决办法
9688
查看次数

使用MVCMailer将图像嵌入电子邮件中

你如何使用MVCMailer将图像嵌入到电子邮件中?

我尝试了一些方法

<img src="@Url.Abs("\\..\\images\logo.png")" \> 
Run Code Online (Sandbox Code Playgroud)

没有成功.

任何例子?

谢谢

mvcmailer asp.net-mvc-3

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

TFS在哪里存储源代码

在我的TFS服务器上,如何查看我的团队项目集合的源代码(哪个文件夹)的存储位置?

我在管理控制台中找不到任何指定位置的内容.

源是否存储在文件系统中?

编辑:愚蠢的问题 - 在TFS和VSS之间感到困惑.TFS将源和变更集存储在SQL数据库中,而VSS将源存储在文件系统上.

tfs2010

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

无法在DLL"advapi32.dll"模拟异常中找到名为"LogonUser"的入口点

在浏览一些遗留模拟逻辑时,我遇到以下异常:

无法在DLL"advapi32.dll"中找到名为"LogonUser"的入口点

我知道错误意味着我的应用程序无法在advapi32.dll中找到LogonUser方法.

代码看起来像这样:

[DllImport("advapi32.dll", CharSet = CharSet.Auto, SetLastError = true, ExactSpelling = true)]
private static extern bool LogonUser(String lpszUsername, String lpszDomain, String     lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken);



if(LogonUser(_username, _domainname, _password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, ref _tokenHandle))
{
//do stuff...
}
Run Code Online (Sandbox Code Playgroud)

有没有人有类似的错误 - 有关如何解决它或为什么会发生的任何建议?除了使用advapi32.dll(它的.net 3.5解决方案,但有很多遗留类)之外,还有更好的方法吗?

c# asp.net impersonation

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

SQL内部在可能的情况下加入2个条件

我在映射表中有以下数据:

ID1         LOCALID         ID2
Local_-1    BankA_7-9       Local_2647
Local_0     Bank_7-9        Local_2647
Local_2624  BGROMF          NULL
Local_2619  BIS             NULL
Run Code Online (Sandbox Code Playgroud)

ID2可以为空.

我的第二张表看起来像:

ID1        ID2
Local_-1   Local_2674 
Local_0    Local_2674
Local_2624 Local_2674
Local_2619 Local_2674
Run Code Online (Sandbox Code Playgroud)

如何使用以下条件内连接表?没有if语句可以做到这一点吗?

如果映射表中的ID2为null,则只需加入ID1,否则加入ID1和ID2.

我的起点(显然会排除空值)是:

SELECT * FROM 
    #Table2 C
     INNER JOIN Mapping F 
                  ON C.ID1 = F.ID1 AND
                  C.ID2 = F.ID2
Run Code Online (Sandbox Code Playgroud)

sql sql-server-2008

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

MVC发布IPagedList

我有以下PagedListModel:

public class PagedClientViewModel
{
    public int? Page { get; set; }
    public PagedList.IPagedList<ClientViewModel> Clients { get; set; }               
}

public class ClientViewModel
{        
    public string ClientNumber { get; set; }
    public bool UseThisClient{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的观点如下:

@using (Html.BeginForm("Index", "Home", FormMethod.Get, new { id = "Form" }))
{
    @foreach (var item in Model.Clients)
    {
       @Html.DisplayFor(modelItem => item.ClientNumber)
       @Html.CheckBoxFor(modelItem => item.UseThisClient)
    }    

 @Html.HiddenFor(model => model.Clients)            
}
Run Code Online (Sandbox Code Playgroud)

控制器动作:

 public ActionResult Index(PagedClientViewModel model)
 {
  //...process all clients in the list
 } …
Run Code Online (Sandbox Code Playgroud)

checkbox asp.net-mvc pagedlist

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