我有以下型号:
public class Tag
{
public int Id { get; set; }
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我希望能够使用AutoMapper Name将Tag类型的属性映射到我的一个viewmodel中的字符串属性.
我使用以下代码创建了一个自定义解析器来尝试处理此映射:
public class TagToStringResolver : ValueResolver<Tag, string>
{
protected override string ResolveCore(Tag source)
{
return source.Name ?? string.Empty;
}
}
Run Code Online (Sandbox Code Playgroud)
我使用以下代码进行映射:
Mapper.CreateMap<Tag, String>()
.ForMember(d => d, o => o.ResolveUsing<TagToStringResolver>());
Run Code Online (Sandbox Code Playgroud)
当我运行应用程序时,我收到错误:
仅对类型上的顶级单个成员支持成员的自定义配置.
我究竟做错了什么?
我目前在IIS7中有2个ASP.NET 3.5 Web应用程序(我们称之为WebParent和WebChild).
WebChild嵌套在IIS7中的WebParent列表中,并设置为应用程序(而不仅仅是WebParent中的虚拟目录).两者目前都使用自己的(Classic)应用程序池.
WebParent和WebChild都在自己的根目录中拥有自己完全定义的web.config文件.
我假设看到WebChild被定义为IIS中的"应用程序",它不会从WebParent配置文件继承任何内容.但是,尽管有这样的配置,我看到web.config中的各种元素的错误已经被定义(这是正确的,两个配置文件中都有一些项目,但我认为它们应该完全独立于一个另一个)?
任何人都可以澄清为什么会发生这种情况?
我一直试图让ReSharpers Code Cleanup不仅按名称按字母顺序排序任何成员,而且主要按其类型(无论是方法返回类型还是属性类型等)对它们进行排序,然后按名称排序.
例如:
#region " Properties "
public string Name { get; set; }
public int Age { get; set; }
#endregion
#region " Instance Methods "
public void SecondMethod()...
public void FirstMethod()...
public Post GetPost()...
public List<Post> GetPosts()...
#endregion
Run Code Online (Sandbox Code Playgroud)
会成为:
#region " Properties "
public int Age { get; set; }
public string Name { get; set; }
#endregion
#region " Instance Methods "
public List<Post> GetPosts()...
public Post GetPost()...
public void FirstMethod()...
public void SecondMethod()...
#endregion
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望其他默认行为保持不变,例如构造函数,属性定位/分组,以及多个成员出现在区域内(如上例所示),以便独立排序的成员组来自该组/地区以外的成员. …
我需要找出我的sql server表中特定字段中有多少行,只包含非字母数字字符.
我认为这是一个正则表达式,我需要沿着[^ a-zA-Z0-9]的行,但我不确定如果那里没有有效的字母数字字符,我需要返回行的确切语法.
我通常对我在网站上呈现的任何用户生成的内容进行HTML编码,因此&符号会变成&等等.我想知道这是否应该(从标准的角度来看)到整个站点中任何动态生成的元标记?
我有一个RESTful Web API项目,我有2个不同的Enum场景,我不确定是最佳实践.
场景1:直截了当的Enum Param
我的API方法需要一个名为的参数ruleType,其有效值为EmailAddress和IPAddress.我在Web API项目中的枚举如下所示:
public enum RuleType
{
None = 0,
EmailAddress = 1,
IPAddress = 2
}
Run Code Online (Sandbox Code Playgroud)
我对这个场景的问题是,我应该?ruleType=EmailAddress在我的API请求中使用它(它会自动将该值绑定到RuleTypeAPI方法中的属性)吗?如果是这样,如何最好地验证RuleTypeparam发送的是一个有效的RuleType Enum值?
场景2:单个参数的多个枚举值
我的API方法有一个可选的fieldsparam,它允许您指定应返回的任何其他数据.例如&fields=ruleOwner,rule.这将在响应中返回那2个额外的数据位.
我在Web API项目中有一个枚举,它与field可能请求的每个可能相关,目前,我正在拆分逗号分隔的字段param,然后循环遍历该枚举的每个字符串表示,将其解析为等效的枚举,结果在Enum值列表中,然后我可以在我的API中使用它来检索相关数据.
这是Enum:
public enum OptionalField
{
None = 0,
RuleOwner = 1,
Rule = 2,
etc.
}
Run Code Online (Sandbox Code Playgroud)
这里最好的做法是什么?我正在查看按位枚举,因此在API请求中发送了一个值,这导致了任何组合,fields但不知道这是否适用于Web API,或者通常是否有更好的方法来解决这个问题?
今天我安装了VS2010 SP1 Beta和IIS 7 Express,因为我目前在我的本地开发机器上安装了IIS5,并且认为我会尝试使用IIS Express.
我已进入Web应用程序的属性窗口,选中"使用IIS Express"复选框,在提示我时创建了虚拟目录,但随后收到消息"无法启动IIS Express Web服务器.端口x位于使用".
我已经尝试将端口号从其中的默认值更改为许多其他端口号,但无论有什么价值,我总是收到此消息,因此无法使用IIS Express Web服务器.
有谁知道问题可能是什么,以及如何解决它?
我有以下模型和映射(下面的代码片段).
一场比赛必须从一开始就有多个与之相关的CompetitionAnswers(多选).
目前,使用下面显示的Fluent NHibernate映射,当我创建一个全新的Competition对象时,填充属性,然后创建3个全新的CompetitionAnswer对象并将它们添加到CompetitionAnswers属性(竞争中的属性),我希望调用Save在会话上将INS竞赛行和3个CompetitionAnswer行插入DB.
但是,当我尝试在会话上调用Save时,它会抱怨CompetitionId为null并且无法在该字段的CompetitionAnswers表中插入null - 这是对的,但是,我不应该这样做NHibernate首先创建竞赛,然后在CompetitionAnswers表中使用新生成的IDENTITY值(CompetitionId)?
比赛(模特)
public virtual int CompetitionId { get; private set; }
public virtual string Title { get; set; }
public virtual string Description { get; set; }
public virtual IList<CompetitionAnswer> CompetitionAnswers { get; set; }
Run Code Online (Sandbox Code Playgroud)
CompetitionAnswer(型号)
public virtual int CompetitionAnswerId { get; set; }
public virtual string Answer { get; set; }
public virtual Competition Competition { get; set; }
Run Code Online (Sandbox Code Playgroud)
CompetitionMap(流利的NHibernate制图)
public CompetitionMap()
{
Id(x => x.CompetitionId)
.GeneratedBy.Native();
Map(x => x.Title);
Map(x => x.Description); …Run Code Online (Sandbox Code Playgroud) 我正在尝试将事务提交到我的Sql Server 2008数据库 - 首先是2次插入然后是几次更新,但是,一旦它尝试执行第一次更新,我就会收到以下错误:
当分配给命令的连接处于挂起的本地事务中时,ExecuteNonQuery要求命令具有事务.该命令的Transaction属性尚未初始化.
这是代码,为简洁起见略有编辑:
using (_cn)
{
_cn.Open();
IDbTransaction transaction = _cn.BeginTransaction();
topicId = (int)_cn.Query<decimal>(qAddTopic, new { pForumId = topic.ForumId }, transaction).Single();
postId = (int)_cn.Query<decimal>(qAddPost, new { pTopicId = topicId }, transaction).Single();
_cn.Execute(qUpdateForums, new { pLastPostId = postId });
_cn.Execute((qUpdateSiteTotals));
transaction.Commit();
}
Run Code Online (Sandbox Code Playgroud)
前2个插入工作正常,但只要它尝试执行其中一个更新,就没有快乐.
我是NHibernate的新手所以到目前为止对映射等的接触有限,而且我刚刚遇到了一个我需要一些帮助的场景.
我有2张桌子:
评论TaggedReviews
我有2个看起来像这样的类(为简洁起见,我排除了非重要属性):
public virtual int ReviewId { get; set; }
public virtual TaggedReview TaggedReview { get; set; }
public virtual string Title { get; set; }
public virtual string Descrip { get; set; }
Run Code Online (Sandbox Code Playgroud)
public virtual int ReviewId { get; set; }
public virtual Review Review { get; set; }
public virtual string TaggedReviewDescrip { get; set; }
Run Code Online (Sandbox Code Playgroud)
我的NHibernate这些表/类的XML映射文件目前如下(为简洁起见编辑):
<class xmlns="urn:nhibernate-mapping-2.2" name="Review" table="Reviews">
<id name="ReviewId" unsaved-value="0">
<column name="ReviewId"></column>
<generator class="native" />
</id>
<property name="Title" not-null="true" …Run Code Online (Sandbox Code Playgroud) asp.net ×4
c# ×4
.net ×2
nhibernate ×2
automapper ×1
automapper-2 ×1
dapper ×1
enums ×1
html ×1
iis ×1
iis-7 ×1
iis-express ×1
mapping ×1
orm ×1
regex ×1
resharper ×1
rest ×1
sql ×1
sql-server ×1
standards ×1
t-sql ×1
web-config ×1