小编Ste*_*ath的帖子

在LINQ中只选择一列

EntityModel定义为: Personnel具有指向Country的链接

在LinqPad中执行此代码时,我发现第一个查询中生成的SQL未优化(返回所有字段)?我在这里错过了什么或做错了什么?

查询1 LINQ

var Country = Countries.FirstOrDefault(o => o.Id == 100000581);
var personnelIds = Country.Personnels.Select(p => p.Id).ToArray();
personnelIds.Dump();
Run Code Online (Sandbox Code Playgroud)

查询1 SQL

exec sp_executesql N'SELECT [t0].[Id], [t0].[Version], [t0].[Identifier], [t0].[Name], , [t0].[UpdatedBy] FROM [Personnel] AS [t0] WHERE [t0].[Country_Id] = @p0',N'@p0 bigint',@p0=100000581
Run Code Online (Sandbox Code Playgroud)



查询2 LINQ

var Country = Countries.FirstOrDefault(o => o.Id == 100000581);
var personnelIds2 = Personnels.Where(p => p.Country == Country).Select(p => p.Id).ToArray();
personnelIds2.Dump();
Run Code Online (Sandbox Code Playgroud)

查询2 SQL

exec sp_executesql N'SELECT [t0].[Id] FROM [Personnel] AS [t0] WHERE [t0].[Country_Id] = @p0',N'@p0 bigint',@p0=100000581
Run Code Online (Sandbox Code Playgroud)


使用的数据库是SQL Express 2008.而LinqPad版本是4.43.06

linq select entity-framework

23
推荐指数
1
解决办法
6万
查看次数

SoapUI:是否可以从SOAP消息中的元素自动生成值?

使用SoapUI,可以将Soap XML消息发送到WCF服务.我有以下SOAP消息:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:my="http://myserviceprovider">
   <soap:Header/>
   <soap:Body>
      <my:ProcessOrder>
         <my:Orders>
            <my:Order>
               <my:id>randomid_1234567890</my:id>
               <my:data>ABC</my:data>
            </my:Order>
         </my:Orders>
      </my:ProcessOrder>
   </soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)

因为WCF服务需要my:id的唯一ID ,所以我想知道SoapUI是否提供自动生成随机GUID的功能?

xml random guid soapui

22
推荐指数
3
解决办法
3万
查看次数

如何使用"Partition By"或"Max"?

我有下表(my_data):

year |  X  |  Y
-----+-----+-----
2010 |  A  |  10
2011 |  A  |  20
2011 |  B  |  99
2009 |  C  |  30
2010 |  C  |  40
Run Code Online (Sandbox Code Playgroud)


什么是最好/最小的SQL语句,只检索与最高年份相关的数据并按"X"分组,如下所示:

year |  X  |  Y
-----+-----+-----
2011 |  A  |  20
2011 |  B  |  99
2010 |  C  |  40
Run Code Online (Sandbox Code Playgroud)


请注意,此结果表将用于连接.

sql oracle max

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

如何从C#webservice生成WSDL文件

我已经创建了这样的WebService:

[WebService(Namespace = "http://ns")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class GroupManagerService : WebService
{
    public GroupManagerService()
    {
    }

    [WebMethod]
    public bool MyMethod(string loginname, string country)
    {
        // code here...
    }
}
Run Code Online (Sandbox Code Playgroud)

是否可以为此代码生成WSDL文件而无需连接到正在运行的服务?我搜索,我发现有关信息svcutil.exe的&Wsdl.exe用,但这些只能从运行WebService的检索WSDL时工作.

(对于java,有一个名为java2wsdl的工具,是否有等效的c#?)



:更新:
此问题的上下文是我要向SharePoint添加新的CustomWebService,它应该使用SharePoint上的_vti_bin文件夹中的WSPBuilder进行部署.另请参阅在SharePoint.SE上的帖子.

我想自动生成(使用msbuild命令)'MyServicewsdl.aspx''MyServicedisco.wsdl',它必须放在_vti_bin文件夹中.



也许我错过了一些东西?svcutil.exe的输出是:

bin\Debug>SvcUtil.exe MyWebService.dll
Microsoft (R) Service Model Metadata Tool
[Microsoft (R) Windows (R) Communication Foundation, Version 3.0.4506.2152]
Copyright (c) Microsoft Corporation.  All rights reserved.

Generating metadata files... …
Run Code Online (Sandbox Code Playgroud)

c# sharepoint wsdl web-services asmx

17
推荐指数
2
解决办法
6万
查看次数

如何在SELECT FROM语句中使用表类型?

这个问题或多或少与相同

在包头中:
声明以下行类型:

  TYPE exch_row IS RECORD(
    currency_cd VARCHAR2(9),
    exch_rt_eur NUMBER,
    exch_rt_usd NUMBER);
Run Code Online (Sandbox Code Playgroud)


而这个表类型:

  TYPE exch_tbl IS TABLE OF exch_row INDEX BY BINARY_INTEGER;
Run Code Online (Sandbox Code Playgroud)


添加了一个变量:

exch_rt exch_tbl;
Run Code Online (Sandbox Code Playgroud)


在包体中:
用一些数据填充此表变量.


在包体中的过程中:
我想使用以下语句:

CURSOR c0 IS
  SELECT i.*, rt.exch_rt_eur, rt.exch_rt_usd
  FROM item i, exch_rt rt
  WHERE i.currency = rt.exchange_cd
Run Code Online (Sandbox Code Playgroud)


如何在Oracle中执行此操作?


笔记

实际上我正在寻找MSSQL中的"表变量"解决方案:

DECLARE @exch_tbl TABLE
(
  currency_cd VARCHAR(9),
  exch_rt_eur NUMBER,
  exch_rt_usd NUMBER)
)
Run Code Online (Sandbox Code Playgroud)

并在我的StoredProcedure中使用此表变量.

oracle select row

13
推荐指数
3
解决办法
22万
查看次数

从AutoMapper定义的映射中获取所有已定义的映射

我们假设我有两个类:CD和CDModel,映射定义如下:

Mapper.CreateMap<CDModel, CD>()
    .ForMember(c => c.Name, opt => opt.MapFrom(m => m.Title));
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的方法可以从映射中检索原始表达式,c => c.Name(对于源)和m => m.Title(对于目标)?

我试过这个,但是我想念一些东西......

var map = Mapper.FindTypeMapFor<CDModel, CD>();
foreach (var propertMap in map.GetPropertyMaps())
{
    var source = ???;
    var dest = propertMap.DestinationProperty.MemberInfo;
}
Run Code Online (Sandbox Code Playgroud)

如何获取源和目标表达式?

expression map automapper

13
推荐指数
1
解决办法
6591
查看次数

如何为C#.NET SDK设置EndPoint/Region:EC2Client?

在JAVA SDK中,可以设置端点,请参见此处.

但是如何为.NET SDK做到这一点?有什么名字可以使用?

因为似乎总是使用默认端点"US East(Northern Virginia)Region".

amazon-s3 endpoint region

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

t4mvc:无法继承没有默认构造函数的控制器类?

我正在使用T4MVC和MVC2.

我有以下构建基块:

  1. 一个简单的实体接口,定义每个POCO实体必须具有long Id属性:

    public interface IEntity
    {
        public long Id;
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 一个简单的POCO类,它实现了IEntity接口并具有一些字符串属性:

    public class CD : IEntity
    {
        public long Id { get; set; }
    
        public long Name { get; set; }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 基础控制器:

    public abstract class EntityController<T> : Controller where T : class, global::IEntity
    {
        public EntityController(IEntityManager<T> manager);
    }
    
    Run Code Online (Sandbox Code Playgroud)
  4. 我在my中使用这个基本控制器CDController(其中CDManager实现了IEntityManager接口,这是一个UnitOfWork模式来添加CRUD功能):

    public partial class CDController : EntityController<CD>
    {
        public CDController() : base(new CDManager()) { }
    }
    
    Run Code Online (Sandbox Code Playgroud)

当我运行我的t4模板时,会生成以下代码:

namespace MyApp.Web.Controllers …
Run Code Online (Sandbox Code Playgroud)

constructor controller t4mvc

9
推荐指数
2
解决办法
1717
查看次数

无法在Visual Studio 2013上找到Visual Studio Installer项目

完成我的C#应用​​程序后,我不得不制作一个安装程序.在看到默认安装程序项目消失后,我搜索了替换项.

我找到了Visual Studio安装程序项目.我从这里下载了文件:https://visualstudiogallery.msdn.microsoft.com/9abe329c-9bba-44a1-be59-0fbf6151054d.

当我重新启动Visual Studio,打开我的项目,单击"添加新项目",这是我得到的: 在此输入图像描述

问题是我找不到安装项目.我试过修复安装.我重启了几次Visual Studio.

我的问题:

我怎样才能找到安装程序项目以及为什么它对我不起作用.

如果我不能使它工作,有没有其他选择?(InstallShield除外)

附加信息:

Visual Studio 2013社区,更新4

Windows 8.1 64位

c# visual-studio-2013

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

单页应用程序,upshot.js,DbContext和DbDataController:仅支持实体模型?

使用单页应用程序的示例时​​,我有以下TodoItem控制器:

public partial class MVC4TestController : DbDataController<MVC4TestContext>
{
    public IQueryable<TodoItem> GetTodoItems()
    {
        return DbContext.TodoItems.OrderBy(t => t.TodoItemId);
    }
}
Run Code Online (Sandbox Code Playgroud)


问题1:
似乎只支持EntityModels?
当使用真正的ViewModel(仅用于视图的模型,而不是用作1:1映射到数据库实体)时,DbDataController不支持此功能.

使用Linq.TranslationsPropertyTranslator似乎也不起作用,请参阅此代码提取:

private static readonly CompiledExpressionMap<TodoItem, string> fullExpression =
    DefaultTranslationOf<TodoItem>.Property(t => t.Full).Is(t => t.Title + "_" + t.IsDone);

public string Full
{
    get
    {
        return fullExpression.Evaluate(this);
    }
}
Run Code Online (Sandbox Code Playgroud)


问题2:
使用SPA,DBContext和ViewModels时的推荐设计是什么?

entity-framework viewmodel asp.net-mvc-4 upshot knockout.js

7
推荐指数
1
解决办法
1567
查看次数