小编b3n*_*b3n的帖子

如何使用Dapper映射嵌套对象的列表

我目前正在使用Entity Framework进行数据库访问,但想看看Dapper.我有这样的课程:

public class Course{
   public string Title{get;set;}
   public IList<Location> Locations {get;set;}
   ...
}

public class Location{
   public string Name {get;set;}
   ...
}
Run Code Online (Sandbox Code Playgroud)

因此,可以在多个地点教授一门课程.实体框架为我执行映射,因此我的Course对象填充了一个位置列表.我如何与Dapper一起讨论这个问题,它是否可能,或者我必须在几个查询步骤中执行此操作?

orm dapper

112
推荐指数
6
解决办法
7万
查看次数

找不到必需的属性'pageBaseType' - 启动我的MVC 3应用程序时的YSOD

从今天早上开始,我在尝试启动MVC 3应用程序时遇到此错误:

Required attribute 'pageBaseType' not found.
Run Code Online (Sandbox Code Playgroud)

错误消息http://i51.tinypic.com/azbbee.jpg

Google没有透露太多有用的信息,除了添加MVCMailer之外,我不知道对web.config所做的任何更改.

有想法该怎么解决这个吗?

asp.net-mvc asp.net-mvc-3

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

MSpec和SpecFlow何时使用哪个?两者的优点/缺点是什么?

我正在尝试开始使用BDD并找到关于MSpec和SpecFlow的视图博客文章.我目前还不太确定何时使用哪个以及这两个框架的优点/缺点是什么.

看一下文档,似乎MSpec使用了上下文规范样式,而SpecFlow使用了Given/When/Then样式.我也不介意,但我想知道,当项目/测试套件增长时,是否有任何陷阱需要留意.

基本上,在每天工作中使用它的人的一些真实世界建议/反馈将是伟大的.

bdd mspec specflow

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

如何在验证摘要中显示MVC 3客户端验证结果

我有一个注册表单,我使用客户端验证(在我的视图模型上指定Required,StringLength等).表格目前几乎是脚手架创建它的方式:

@using (Html.BeginForm("Index", "Registration"))
{
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Registration details</legend>
        @Html.ValidationSummary(false, "Please correct these errors:")
        @Html.ValidationMessageFor(model => model.Username)
        <div class="editor-label">
            @Html.LabelFor(model => model.Username)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Username)
        </div>
        <p>
            <input type="submit" value="Register" />
        </p>
    </fieldset>
}
Run Code Online (Sandbox Code Playgroud)

唯一的区别是我将ValidationMessageFor移动到ValidationSummary下面的右上角.

我想要做的是在验证摘要中显示客户端验证错误.目前,它们只显示在表单的顶部,但未使用验证摘要.如何使用验证摘要显示客户端验证错误?这甚至可能吗?

更新

Darin我在新项目中使用了你的代码,当客户端验证开始时,这就是我的样子:

客户端验证http://i56.tinypic.com/i3f320.jpg

我希望在验证摘要中显示这个,并应用验证摘要样式.我还提交了表格,然后看起来像这样:

提交http://i55.tinypic.com/2hqcowh.jpg后

谢谢,

B3N

asp.net-mvc validationsummary asp.net-mvc-2-validation asp.net-mvc-3

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

使用Include()时,如何避免在EF中生成大量SQL查询

我正在使用EF(DLL版本为4.4)来查询数据库.该数据库包含几个包含课程信息的表.当看看实际发送给db的内容时,我看到了一个巨大的,近1300行的SQL查询(由于它的大小,我不会在这里粘贴).我在上下文中运行的查询如下所示:

entities.Plans
  .Include("program")
  .Include("program.offers")
  .Include("program.fees")
  .Include("program.intakes")
  .Include("program.requirements")
  .Include("program.codes")
  .Include("focuses")
  .Include("codes")
  .Include("exceptions")
  .Include("requirements")
where plans.Code == planCode
select plans).SingleOrDefault(); 
Run Code Online (Sandbox Code Playgroud)

我想避免在从每个相关表中收集信息时回到服务器,但是如此大的查询我想知道是否有更好的方法来做到这一点?

谢谢.

entity-framework entity-framework-4

12
推荐指数
1
解决办法
2281
查看次数

嵌套对象的远程ViewModel验证不起作用

我有一个类用户,看起来像这样:

public class User
{
    public int UserId { get; set; }

    [Required(ErrorMessage = "A username is required.")]
    [StringLength(20, ErrorMessage = "Your username must be 4-20 characters.", MinimumLength = 4)]
    [RegularExpression("^[a-zA-Z0-9]*$", ErrorMessage = "Your username can only consist of letters and numbers.")]
    [Remote("UsernameExists", "RemoteValidation", ErrorMessage = "Username is already taken")]
    public string Username { get; set; }

    [Required(ErrorMessage = "A password is required.")]
    [MinLength(4, ErrorMessage = "Your password must have at least 4 letters.")]
    public string Password { get; set; …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-mvc-validation asp.net-mvc-3

10
推荐指数
1
解决办法
4644
查看次数

如何获得实体框架代码第一个和可以为空的外键属性工作?

我正在尝试创建一个简单的实体框架代码第一个应用程序.我有这些课程:

public class User
{
    public int UserId { get; set; }

    public string Username { get; set; }

    public virtual ActivationTicket ActivationTicket { get; set; }
}

public class ActivationTicket
{
    public int ActivationTicketId { get; set; }

    public virtual User User { get; set; }

    public string Ticket { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试创建一个新用户并将其保存到数据库(没有ActivationTicket的用户)时,我收到一个异常

INSERT语句与FOREIGN KEY约束"ActivationTicket_User"冲突.冲突发生在数据库"Test",表"dbo.ActivatioTickets",列'ActivationTicketId'中.该语句已终止.

我假设EF将User和ActivationTicket之间的映射视为1-1,但它应该是1-0..1

我该怎么做才能让它发挥作用?

.net c# entity-framework-4 ef-code-first

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

如何在Orchard中设置Widget的样式?

我正在尝试在Orchard中构建一个主题(转换我现有的模板)但是在设置Blog Archives小部件时遇到了问题.我有一个区域"侧边栏",我放置了小部件.

为了让它输出标记我希望我在我的视图文件夹中创建了一个新模板:Widget-BlogArchives.cshtml所有模板都将div中的内容包装在div中,如下所示:

<div class="box box_small">
    @Display(Model.Content)
</div>
Run Code Online (Sandbox Code Playgroud)

所以我希望所有的widget内容都在我的div中.但是,生成的HTML如下所示:

<article class="widget-blog-archives widget" shape-id="15">
  <header shape-id="15">
    <h1 shape-id="15">The Archives</h1>
  </header>
  <div class="box box_small" shape-id="15">
    <div class="archives" shape-id="16">
      <ul class="archiveMonthList" shape-id="16">
        <li class="first last" shape-id="16">
      <a href="(shortened)/10" shape-id="16">October 2011 (1)</a>
    </li>
  </ul>
    </div>
  </div>
</article>
Run Code Online (Sandbox Code Playgroud)

我不明白的是整篇文章包装的来源?如何将标题放入我的div中并将其更改为?

有人还可以解释模型中存储标题"The Archives"的位置吗?我在形状跟踪工具中查看了模型,但找不到它......

谢谢.

UPDATE

正如Bertrand解释我对Widget-BlogArchives.cshtml做了一些更改:

@using Orchard.ContentManagement
@using Orchard.Widgets.Models
@{
  Model.Metadata.Wrappers.Clear();
  var title = ((IContent)Model.ContentItem).As<WidgetPart>().Title;
}
<div class="box box_small">
  <h3>@title</h3>
  @Display(Model.Content)
</div>
Run Code Online (Sandbox Code Playgroud)

这现在生成我想要的HTML.

asp.net asp.net-mvc orchardcms razor asp.net-mvc-3

9
推荐指数
1
解决办法
3878
查看次数

在C#中生成私有RSA密钥

我的价值观p,q,ne,想计算私钥d.我怎么能这样做,有人可以给我一个C#代码示例吗?我使用一个BigInteger类来表示的值p,q,ne所以我想d将是一个BigInteger为好.

c# encryption cryptography rsa

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

如何使用Entity Framework 4和存储库模式实现通用的GetById方法?

我有一个通用的存储库,并希望实现一个通用的GetById方法.到目前为止,这是我的存储库界面:

public interface IRepository<T> where T : EntityObject  
{
    void Add(T entity);
    void Delete(int id);
    void Delete(T entity);
    IEnumerable<T> Find(Expression<Func<T, bool>> predicate);
    T SingleOrDefault(Expression<Func<T, bool>> predicate);
    IEnumerable<T> GetAll();
    T GetById(int id);
    void Save();
    T Single(Expression<Func<T, bool>> predicate);
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Entity Framework 4.1.我发现的很多解决方案都是为IEntity类使用一个抽象基类接口,实体必须继承这个类才能执行Id查找.

我没有为所有类实现接口,而是尝试使用这段代码:

T entity = _objectSet.Where(
    x => x.EntityKey.EntityKeyValues
          .Select(v => v.Value.Equals(id)).Count() == 1).First();
Run Code Online (Sandbox Code Playgroud)

但是,当尝试使用该方法时,我收到一个异常:

The specified type member 'EntityKey' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.

有人能告诉我如何让这个工作吗?

更新1

成员_objectContext和_context声明如下: …

entity-framework repository-pattern entity-framework-4

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