我一直在尝试创建一个FluentValidation规则,在验证它的属性之前检查它验证的对象的实例是否为null.
我宁愿在验证器中封装这个空验证,而不是在调用代码中执行它.
请参阅下面的示例代码以及需要所需逻辑的注释:
namespace MyNamespace
{
using FluentValidation;
public class Customer
{
public string Surname { get; set; }
}
public class CustomerValidator: AbstractValidator<Customer>
{
public CustomerValidator()
{
// Rule to check the customer instance is not null.
// Don't continue validating.
RuleFor(c => c.Surname).NotEmpty();
}
}
public class MyClass
{
public void DoCustomerWork(int id)
{
var customer = GetCustomer(id);
var validator = new CustomerValidator();
var results = validator.Validate(customer);
var validationSucceeded = results.IsValid;
}
public Customer GetCustomer(int id)
{
return …Run Code Online (Sandbox Code Playgroud) 我是Unity的新手,我正在尝试编写一些Unity逻辑,它初始化并注册/解析Email对象的单例实例,以便它可以用于其他几个对象,下面的一个例子是OperationEntity.
因此,当它注册时,它会使用配置文件中的某些值填充Email单例,然后每当创建一个OperationEntity实例时(在我的情况下它被反序列化)它就会使用相同的Email单例.所以我的所有客户端逻辑需要做的是反序列化OperationEntity并调用PerformAction() - 使用Unity负责的电子邮件实例.
public interface IEmail
{
string FromName { get; set; }
string FromEmailAddress { get; set; }
}
public class Email : IEmail
{
public string FromName { get; set; }
public string FromEmailAddress { get; set; }
public Email(string fromName, string fromEmailAddress)
{
FromName = fromName;
FromEmailAddress = fromEmailAddress;
}
}
public class OperationEntity
{
private readonly IEmail _email;
public int OperationId { get; set; }
public string OperationName { get; set; }
public …Run Code Online (Sandbox Code Playgroud) 我知道您可以进入SQL Server Management Studios中的表的设计视图,并在设计视图中显示重新排序列,但是由于禁用了该选项,因此无法使用SQL Azure.有没有办法修改SQL Azure表,以便您可以在设计视图中显示列重新排序?
我在过去几个月里一直在运行许多数据库升级以支持新的需求,并希望重新排列列在设计视图中的显示方式,以便它们更容易阅读,即所以它们以主键开头,然后是外键,然后是普通列,最后添加,由字段修改.它纯粹是为了使表格更具可读性,因为我随着时间的推移管理它们.
我正在尝试确保将Twitter Bootstrap table-stripped CSS样式应用于在运行时动态添加行的表.出于某种原因,我试图找到底部,我无法使这种特殊的风格工作,以便我的新行采用剥离外观进行样式设置.
所以如果我有这个table-stripped包含的HTML :
<table class="table table-bordered table-striped table-condensed table-hover" id="table2">
<thead>
<tr>
<th>Heading A</th>
<th>Heading B</th>
<th>Heading C</th>
</tr>
</thead>
<tbody></tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
然后我运行这个JavaScript代码:
for (var i = 0; i < 5; i++)
{
$('#table2 > tbody:last').before('<tr><td>' + i +'</td><td>b</td><td>c</td>');
}
Run Code Online (Sandbox Code Playgroud)
我将获得我的5个新行,但它们不会table-stripped应用样式.
即使我在使用它创建后手动添加类也没有区别.
$('#table2').addClass('table-hover');
Run Code Online (Sandbox Code Playgroud)
我已经创建了一个jsFiddle示例,因此您可以看到它正在运行.
我刚刚创建了一个全新的ASP.NET MVC 4解决方案并添加了3个区域,并希望它们按照指示进行路由:
1. General -> http://www.mysite.com/
2. Members -> http://www.mysite.com/members/
3. Administration -> http://www.mysite.com/administration/
Run Code Online (Sandbox Code Playgroud)
我可以配置路由,以便"常规"区域在它是第一个段时起作用,但是当我不希望"常规"在URL中显示为段时,似乎无法让我的路由在所有3个区域中工作.正如您所看到的,我的目标是建立一个干净的URL结构.
我计划在每个区域下添加一些控制器/视图,并希望维护这个区域组织.
我已经看到了类似的MVC 2问题,但我不确定区域注册的顺序是否会纠正我的特定问题.
asp.net-mvc asp.net-mvc-routing asp.net-mvc-areas asp.net-mvc-4
我有两个Entity Framework 5 Get()方法,它们执行(i)单个实体获取ID,以及(ii)单个实体通过过滤器获得任何急切加载螺栓.请参阅下面的代码:
internal readonly FallenNovaContext Context;
private readonly DbSet<TEntity> _dbSet;
internal GenericRepository(FallenNovaContext context)
{
Context = context;
_dbSet = context.Set<TEntity>();
}
// (i) Get by ID.
public TEntity GetById(int id)
{
return _dbSet.Find(id);
}
// (ii) Get by filter and optional eager loading includes.
public TEntity Get(
Expression<Func<TEntity, bool>> filter = null,
IEnumerable<string> includePaths = null)
{
IQueryable<TEntity> query = _dbSet;
if (filter != null)
{
query = query.Where(filter);
}
if (includePaths != …Run Code Online (Sandbox Code Playgroud) 我已经针对Visual Studio 2012安装了ReSharper 7,并且由于已购买了升级许可证,因此希望升级到版本8。
我该如何升级?
我必须先卸载然后重新安装,还是可以通过ReSharper选项在Visual Studio中应用我的许可证代码,它会自动处理更新?
我在公共 Azure blob 容器中存储了大量文件,所有这些文件都通过我的 ASP.NET MVC Web 应用程序中的 HTML 直接引用。作为示例,Blob 存储中的其中一张图像的路径如下所示:
//<my-storage-account-name>.blob.core.windows.net/public/logo.png
Run Code Online (Sandbox Code Playgroud)
我想避免在 HTML 源代码中显示我的存储帐户名称,而不是:
<img src="//<my-storage-account-name>.blob.core.windows.net/public/logo.png"/>
Run Code Online (Sandbox Code Playgroud)
我更喜欢用这个:
<img src="/images/logo.png"/>
Run Code Online (Sandbox Code Playgroud)
我想避免设置 MVC 路由并使用 blob API 将文件加载到响应流中,因此认为 web.config 解决方案可能是最简单的解决方案,即
<rule name="Image Redirect" stopProcessing="true">
<match url="^images/(.*)$" ignoreCase="false" />
<action type="Redirect" url="//<my-storage-account-name>.blob.core.windows.net/public/{R:1}" redirectType="Permanent" />
</rule>
Run Code Online (Sandbox Code Playgroud)
问题:考虑到任何页面一次可以加载 30 多个图像,这是最有效的方法吗?或者,尽管我担心性能提升,但我应该只使用公共 blob URL?
我正在使用Entity Framework 5并且有一个通用的存储库,其中有几个方法,如下面的两个Get()方法:
public TEntity GetById(int id)
{
return DbSet.Find(id);
}
public TEntity Get(
Expression<Func<TEntity, bool>> filter = null,
IEnumerable<string> includePaths = null)
{
IQueryable<TEntity> query = DbSet;
if (filter != null)
{
query = query.Where(filter);
}
if (includePaths != null)
{
query = includePaths.Aggregate(query, (current, includePath) => current.Include(includePath));
}
return query.SingleOrDefault();
}
Run Code Online (Sandbox Code Playgroud)
这些都非常有用,但是当我想要进行稍微复杂的GetById()调用并同时检索一些实体引用时,如下所示:
var user = _userRepository.GetById(
id,
new List<string> { "Roles", "Invoices" });
Run Code Online (Sandbox Code Playgroud)
我最终不得不为每个实体推出特定于实体的(非通用的)GetById(id,includes)调用,以便我可以访问lambda中的特定Id字段,即UserId或InvoiceId等.
public User GetById(
int id,
IEnumerable<string> includes)
{
return Get(
(u => u.UserId == …Run Code Online (Sandbox Code Playgroud) 我使用颜色框,我有它工作正常,除了我不明白如何在单击时添加多个图像到库.
但我需要为每朵花出现2张图片.
谢谢你的帮助!
c# ×4
jquery ×2
asp.net-mvc ×1
azure ×1
blob ×1
colorbox ×1
entity ×1
frameworks ×1
generics ×1
html ×1
javascript ×1
resharper ×1
sql ×1
ssms ×1