我想知道在对象中使用方法链接在流畅的界面中实现.When条件的最佳方法是什么?Builder
例如,我将如何实现以下示例中的.WithSkill()和.When()方法:
var level = 5;
var ninja = NinjaBuilder
.CreateNinja()
.Named("Ninja Boy")
.AtLevel(level)
.WithShurikens(10)
.WithSkill(Skill.HideInShadows)
.When(level > 3)
.Build()
Run Code Online (Sandbox Code Playgroud)
更新 - 可以在此处找到示例解决方案.
我在使用AutoMapper(这是一项出色的技术)时遇到了一个问题,即将业务对象映射到DTO,在DTO中我从集合中的抽象基类继承.
这是我的对象:
abstract class Payment
class CashPayment : Payment
class CreditCardPayment : Payment
Run Code Online (Sandbox Code Playgroud)
我还有一个发票对象,其中包含一系列付款,如下所示:
public class Invoice
{
... properties...
public ICollection<Payment> Payments { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我还有每个这些对象的相应DTO版本.
DtoInvoice对象定义为:
[DataContract]
public class DtoInvoice
{
...properties...
[DataMember]
public List<DtoPayment> Payments { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这就是我的Mapper定义:
Mapper.CreateMap<Invoice, DtoInvoice>();
Mapper.CreateMap<Payment, DtoPayment>()
.Include<CashPayment, DtoCashPayment>()
.Include<CreditCardPayment, DtoCreditCardPayment>();
Mapper.CreateMap<CashPayment, DtoCashPayment>();
Mapper.CreateMap<CreditCardPayment, DtoCreditCardPayment>();
Run Code Online (Sandbox Code Playgroud)
执行映射的代码如下所示:
var invoice = repo.GetInvoice(invoiceId);
var dtoInvoice = Mapper.Map<Invoice, DtoInvoice>(invoice);
Run Code Online (Sandbox Code Playgroud)
因此,例如,如果我的发票对象包含特定付款的集合(比如1现金和1张信用卡),当映射器尝试映射它们时,我会收到错误,即无法创建抽象类付款.如果我从Payment对象中删除了abstract关键字,那么代码可以工作,但我只收到Payment对象的集合,我没有得到他们的特定对象(现金和信用卡付款).
所以问题是:如何让AutoMapper映射特定的支付类型而不是基类?
更新
我做了一些挖掘,并认为我发现了一个问题,但我不确定如何使用AutoMapper解决这个问题.我认为这更像是EF的事情,而不是AutoMapper的错.:-)
在我的代码中,我使用延迟加载的Entity Framework 4代理POCO.
因此,当我尝试映射从EF返回的实体(代理POCO)时,它会获得如下滑稽的类型:
System.Data.Entity.DynamicProxies.CashPayment_86783D165755C316A2F58A4343EEC4842907C5539AF24F0E64AEF498B15105C2
Run Code Online (Sandbox Code Playgroud)
所以我的理论是,当AutoMapper尝试将CashPayment映射到DtoCashPayment并且传入的付款属于代理类型时,AutoMapper将其视为"不匹配",然后映射通用付款类型.但由于Payment是一个抽象类AutoMapper炸弹,其中包含"System.InvalidOperationException:无法创建抽象类的实例".例外.
所以问题是:我有没有办法使用AutoMapper将EF POCO代理对象映射到Dtos.
我遇到了EF4和Proxy Pocos的问题.
我在同一个程序集中有两个具有相同名称的类但名称空间不同:
QuoteModels.CashPayment
OrderModels.CashPayment
Run Code Online (Sandbox Code Playgroud)
这编译很好但在运行时EF抛出以下异常:
指定的架构无效.错误:\ r \n由于多个CLR类型与EDM类型"CashPayment"匹配,因此CLR类型到EDM类型的映射不明确.以前发现CLR类型'QuoteModels.CashPayment',新发现的CLR类型'OrderModels.CashPayment'
是否有一种解决方法可以在具有不同命名空间的同一程序集中使用具有相同名称的类来与Ef4一起使用?
我是否必须给他们不同的名字或将他们移到另一个集会?
我们正在使用VS 2010和TFS 2010以及Microsoft Scrum模板.
我们使用当前Sprint的团队查询,如Sprint Backlog查询.
问题是当我们转向冲刺2时,"当前冲刺"仍然指向冲刺1.
有没有办法告诉TFS我们现在正处于sprint 2并且让查询使用变量来运行而不是硬编码sprint?
例如:如果您查看下面的屏幕截图,您会注意到查询的定义使用了一个名为"@Project"的变量作为团队项目.有没有办法为sprint提供变量?

我想测试在AS400系统上运行的DB2存储过程.
我安装了IBM System i Access for Windows,可以对DB2数据库运行SQL命令.
我的问题是:执行存储过程的语法是什么,该存储过程接受参数并将结果作为输出参数返回并将值打印到屏幕上?
只是为了澄清:我不是问如何在代码中调用proc.我想执行proc并在gui工具中查看结果(类似于SQL Enterprise Manager).
我们正在寻找到新的捆绑的功能,ASP.NET MVC 4,如果有任何优势,想知道捆绑CSS文件被从CDN服务?
有没有办法捆绑从ASP.NET MVC 4中的CDN提供的多个文件?这不起作用:
var cdnCssPath = "http://MyCdn/css/";
bundles.Add(new StyleBundle("~/Content/css", cdnCssPath)
.Include("~/Content/site.css")
.Include("~/Content/Test1.css")
.Include("~/Content/Test2.css")
.Include("~/Content/Test3.css")
);
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我正在研究ASP.NET MVC4 System.Web.Optimization捆绑,并想知道如何从CDN和其他本地服务器提供一些CSS文件?
那可能吗?
它看起来像bundles.UseCdn = true在集合级别而不是单个包的设置.
任何指导将不胜感激.
css cdn asp.net-mvc-4 bundling-and-minification asp.net-optimization
我最近安装了Visual Studio 2010 SP1 BETA,ASP.NET MVC 3 RC2和IIS Express.
我成功地使用IIS Express在项目中运行了一个MVC 3项目以及经典的ASP页面.
我想知道在使用IIS Express时是否有办法在Visual Studio中使用断点设置经典ASP 调试?
如果是这样,有没有关于如何做到这一点的教程/帖子?
asp-classic visual-studio-debugging iis-express asp.net-mvc-3
使用RavenDB存储文件数据的当前最佳实践是什么?(CDN或RavenDB附件)
我一直在关注Rob Ashton的优秀演示应用程序RavenDB Photo Gallery Project.在演示项目中,他将文件存储为RavenDB附件,但似乎提到这不是最佳实践.当前版本的RavenDB对此有何最新想法?
我试图使用ASP.NET MVC 3和Ninject 2.2将记录器对象注入自定义ActionFilterAttribute.
如果我使用自定义属性标记每个控制器,我能够使其工作.
但是,如果我从控制器中删除属性修饰并尝试使用全局操作过滤器,则无法使其工作.
这是代码:
在App_Start下 - NinjectMVC3.cs
using NinjectTest.Abstract;
using NinjectTest.Concrete;
[assembly: WebActivator.PreApplicationStartMethod(typeof(NinjectTest.App_Start.NinjectMVC3), "Start")]
[assembly: WebActivator.ApplicationShutdownMethodAttribute(typeof(NinjectTest.App_Start.NinjectMVC3), "Stop")]
namespace NinjectTest.App_Start
{
using Microsoft.Web.Infrastructure.DynamicModuleHelper;
using Ninject;
using Ninject.Web.Mvc;
public static class NinjectMVC3
{
private static readonly Bootstrapper bootstrapper = new Bootstrapper();
/// <summary>
/// Starts the application
/// </summary>
public static void Start()
{
DynamicModuleUtility.RegisterModule(typeof(OnePerRequestModule));
bootstrapper.Initialize(CreateKernel);
}
/// <summary>
/// Stops the application.
/// </summary>
public static void Stop()
{
bootstrapper.ShutDown();
}
/// <summary>
/// Creates the kernel that …Run Code Online (Sandbox Code Playgroud) 我想在SQL Server 2008中创建一个数据库图,并在图中有一个View.有没有办法做到这一点?
我能够使用ASP.NET MVC 3和Ninject 2.2注入Logger对象到自定义ActionFilterAttribute感谢我在此得到的帮助后.
现在我想将自定义ActionFilterAttribute仅绑定到特定区域中的所有控制器.
我能够开始使用以下绑定,但它只处理某个区域中的一个控制器.我希望我的代码绑定到特定区域中的所有控制器.有任何想法吗?
/// <summary>
/// Load your modules or register your services here!
/// </summary>
/// <param name="kernel">The kernel.</param>
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<ILogger>().To<Log4NetLogger>().InRequestScope();
kernel.BindFilter<TestLoggingAttribute>(
FilterScope.Controller, 0)
.WhenControllerType<OrganizationController>();
}
Run Code Online (Sandbox Code Playgroud) dependency-injection ninject asp.net-mvc-areas action-filter asp.net-mvc-3
我想使用我声明的变量在DB2 System I Navigator工具中为DB2运行一些ad hoc select语句.
例如,在SQL Server世界中,我很容易在SQL Server Management Studio查询窗口中执行此操作,如下所示:
DECLARE @VariableName varchar(50);
SET @VariableName = 'blah blah';
select * from TableName where Column = @VariableName;
Run Code Online (Sandbox Code Playgroud)
如何在IBM System I Navigator工具中执行类似的操作?
cdn ×3
c# ×2
db2 ×2
ibm-midrange ×2
ninject ×2
poco ×2
.net ×1
asp-classic ×1
attachment ×1
automapper ×1
builder ×1
collections ×1
css ×1
file-upload ×1
iis-express ×1
namespaces ×1
ravendb ×1
scrum ×1
sql ×1
sql-server ×1
tfs ×1
tfs2010 ×1
view ×1