小编Die*_*hon的帖子

如何使用AutoMapper .ForMember?

我正在尝试设置AutoMapper以从实体转换为DTO.我知道我应该使用.ForMember()Mapper.CreateMap<Entity, DTO>()设置自定义映射,但是这似乎并没有成为一个有效的方法.

编辑以供澄清:我不是要查找我已阅读的文档的链接,或者是基本语法的解释.我正在使用答案和文档中描述的正确语法,例如:

Mapper.CreateMap<EFAddress, Address>()
      .ForMember(dest => dest.Code, opt => opt.MapFrom(src => src.Name));
Run Code Online (Sandbox Code Playgroud)

如果我在CreateMap <>中有一个无效的类型名称,我可以看到"ForMember"作为一个有效的方法,鼠标悬停显示方法签名,正如我通常所期望的那样.但是,只要我给它两个有效类型,ForMember说它无法解析符号,就好像该方法不可用一样.

对于我没有遇到的泛型类,是否存在某种约束?

谢谢

.net automapper

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

EF:使用延迟加载的必需属性时,验证失败

鉴于这个非常简单的模型:

public class MyContext : BaseContext
{
    public DbSet<Foo> Foos { get; set; }
    public DbSet<Bar> Bars { get; set; }
}

public class Foo
{
    public int Id { get; set; }
    public int Data { get; set; }
    [Required]
    public virtual Bar Bar { get; set; }
}

public class Bar
{
    public int Id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

以下程序失败:

object id;
using (var context = new MyContext())
{
    var foo = new Foo { Bar = …
Run Code Online (Sandbox Code Playgroud)

entity-framework ef-code-first

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

log4net每次运行一个文件

我需要我的应用程序每次运行时创建一个日志文件.

我首选的格式是App.log.yyyy-MM-dd_HH-mm-ss.如果那是不可能的,我会选择App.log.yyyy-MM-dd.counter

这是我目前的appender配置:

<appender name="File" type="log4net.Appender.RollingFileAppender">
  <file value="App.log"/>
  <rollingStyle value="Date"/>
  <datePattern value=".yyyy-MM-dd_HH-mm-ss"/>
  <staticLogFileName value="false"/>
  <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
</appender>
Run Code Online (Sandbox Code Playgroud)

但它会根据日期和时间创建随机数量的文件.

log4net

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

为什么array.slice的行为(长度,n)不同

如果我有一个数组a:

  1. a[a.length]回报nil.好.
  2. a[a.length, x]回报[].好.
  3. a[a.length+x, y]回报nil.与2不一致.

虽然这种行为被记录在案,这似乎很奇怪.

任何人都可以解释这种设计背后的原因吗?

ruby arrays

24
推荐指数
2
解决办法
2804
查看次数

{Binding PropertyName}和{Binding Path = PropertyName}之间的区别

我已经看到在同一个项目中使用了这两种样式,我想知道它们之间是否有任何语义差异,或者是否会推荐其他样式以及为什么.

wpf xaml binding

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

Visual Studio 2010中的HTML5验证 - 脚本是否仍需要类型标记?

我正在验证通过VS2010 SP1获得的HTML5.我的印象是这种简化是可能的:

<script type="text/javascript" src="foo.js">...</script>
Run Code Online (Sandbox Code Playgroud)

<script src="foo.js">...</script>
Run Code Online (Sandbox Code Playgroud)

在尝试这个时,我发现:

<head id="Head1" runat="server">
  <script src="../Scripts/MicrosoftAjax.js"></script>
</head>
Run Code Online (Sandbox Code Playgroud)

得出这个:

警告1验证(HTML5):元素"脚本"缺少必需的属性"类型".

我错过了什么吗?Visual Studio XHTML5验证是否比HTML5 doc更严格要求?

html5 visual-studio-2010

16
推荐指数
2
解决办法
4520
查看次数

QueryOver IN子句?

我想模拟这个查询:

SELECT * FROM FOO WHERE ID IN (1,2,3)
Run Code Online (Sandbox Code Playgroud)

我怎么能在FNH这样做?

var ids = new List<int>{1,2,3};
var results = session.QueryOver<Foo>().Where( x=> ids.Contains(x.id) );
Run Code Online (Sandbox Code Playgroud)

但这不起作用,只是给了我一个"无法识别的方法调用"异常.

有任何想法吗?这必须是一个共同的要求.

nhibernate queryover

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

引用T4模板中的程序集

自从我上次使用T4以来已经有一段时间了,这可能是一个愚蠢的问题......

是否可以从模板引用任意组件?

例:

  • 我有一个我想在Project X中使用的课程
  • 项目X.Test引用X并包含.tt文件

我认为以下应该有效

<#@ assembly name="X" #>
Run Code Online (Sandbox Code Playgroud)

但是我在保存时收到以下错误:

编译转换:找不到元数据文件"X"

我究竟做错了什么?

(如果有人感兴趣:我正在尝试根据我从X获得的一些元数据自动生成特定类型的测试)

更新:看起来VS2010已经破坏了我期待的装配分辨率行为.来自http://blogs.msdn.com/b/garethj/archive/2010/04/15/what-s-new-in-t4-in-visual-studio-2010.aspx:

T4的装配集与包含项目的装配集完全分离,以避免在项目针对以前的框架版本时拾取错误的装配.项目程序集不再用于解析模板程序集指令.

除了使用绝对路径之外,还有其他解决方法吗?

t4 visual-studio-2010

15
推荐指数
1
解决办法
5335
查看次数

使用具有流畅的nHibernate的Generic Repository模式

我目前正在开发一个中型应用程序,它将访问不同站点上的两个或更多SQL数据库等...

我正在考虑使用类似的东西:http: //mikehadlow.blogspot.com/2008/03/using-irepository-pattern-with-linq-to.html

但是,我想使用流畅的nHibernate代替Linq-to-SQL(当然还有nHibernate.Linq)

这可行吗?

我该如何配置呢?我的映射定义会在哪里等...?

该应用程序最终将具有许多方面 - 来自WebUI,WCF库和Windows应用程序/服务.

另外,例如在"产品"表上,我是否会创建一个"ProductManager"类,它具有以下方法:

GetProduct,GetAllProducts等......

任何指针都非常受欢迎.

c# nhibernate repository-pattern

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

ListView列自动调整大小

假设我有以下ListView:

<ListView ScrollViewer.VerticalScrollBarVisibility="Auto">
  <ListView.View>
    <GridView>
      <GridViewColumn Header="Something" 
                      DisplayMemberBinding="{Binding Path=ShortText}" />
      <GridViewColumn Header="Description"
                      DisplayMemberBinding="{Binding Path=VeryLongTextWithCRs}" />
      <GridViewColumn Header="Something Else" 
                      DisplayMemberBinding="{Binding Path=AnotherShortText}" />
    </GridView>
  </ListView.View>
</ListView>
Run Code Online (Sandbox Code Playgroud)

我希望短文本列始终适合屏幕,而长文本列则使用剩余空间,必要时自动换行.

那可能吗?

wpf listview autosize

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