小编JTu*_*ney的帖子

我应该何时使用AutoMapper,何时不使用

我有一个数据层,它包含我的EF6 DbFirst edmx,存储库和AutoMappings.

我的数据层中每个自动生成的实体都有一个带有Poco的Model层.除了一些名称更改外,这些属性几乎完全匹配.

AutoMapper仅安装到我的DataLayer,这是我在配置文件中设置所有映射的地方.此时,我有一个从每个DataLayer实体到每个ModelLayer实体的映射,以及每个ModelLayer实体到每个DataLayer实体的映射.在映射中指定了任何名称更改.

因为它是在我的存储库保存方法中以这种方式设置的,所以该函数从ModelLayer接收一个对象,但随后被映射到DataLayer对象,因此我可以将它发送到DbContext.在我的存储库中提取信息时,我使用DbContext检索,然后使用AutoMapper函数映射到Model,以便函数可以作为Model.entity返回.

我的业务层和Web应用程序仅使用模型实体.如果有任何问题,请告诉我.

另一件事是在我的控制器中的GET和POST操作期间从ModelLayer映射到ViewModel,反之亦然.在这里映射两种方式是否正常?此时我是否需要将AutoMapper安装到我的网络应用程序中?

c# asp.net-mvc viewmodel automapper asp.net-mvc-5

7
推荐指数
1
解决办法
3098
查看次数

在实体框架中放置扩展的部分类

由于部分类必须在同一个命名空间中,我唯一的选择是将它们放在与我的.edmx相同的直接位置?如果是这种情况,我假设文件名必须始终不同.

另外,还有什么我需要做的或者我只是在同一目录中创建另一个具有相同名称的部分类并向其添加属性/方法吗?

c# entity-framework partial-classes

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

使用 IIS8.0 Express (vs2013) 的 .NET Forms 身份验证 - 401.2.:未经授权:由于服务器配置导致登录失败

需要注意的一件事:我创建了一个带有个人用户帐户身份验证的 Web 应用程序并添加了它,它的工作原理与预期完全一致。我想知道这个应用程序和从无身份验证开始时有什么不同。

我创建了一个新的网络表单应用程序,没有身份验证,只是为了确保我的项目中没有任何具体内容。按照本教程设置基本表单身份验证。当我加载项目时,我收到以下错误,而不是将我重定向到我的 Login.aspx 页面。我的总体目标是创建一个网络应用程序,除非用户登录,否则基本上不允许用户访问任何页面。由于我在表单标签中指定了登录页面,我假设它使匿名用户成为可访问的页面,以便每个人都可以登录。我觉得我的问题与 IIS8.0 Express 或我的项目设置有关。'Windows 身份验证 = 已禁用' '匿名身份验证 = 已启用'。

<system.web>
  <authentication mode="Forms">
    <forms loginUrl="~/Security/Login.aspx" name=".ASPXFORMSAUTH" timeout="60">
    </forms>
  </authentication>
  <authorization>
    <deny users="?" />
  </authorization>
</system.web>
Run Code Online (Sandbox Code Playgroud)

以下是我收到的错误:

“/”应用程序中的服务器错误。

访问被拒绝。

描述:访问服务此请求所需的资源时发生错误。服务器可能未配置为访问所请求的 URL。

错误消息 401.2.:未经授权:由于服务器配置导致登录失败。根据您提供的凭据和 Web 服务器上启用的身份验证方法,验证您是否有权查看此目录或页面。请联系 Web 服务器的管理员以获得更多帮助。

版本信息:Microsoft .NET Framework版本:4.0.30319;ASP.NET版本:4.0.30319.34212

forms asp.net authentication authorization webforms

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

将模型传递到局部视图

我有一个_Address局部视图.此部分视图包含与地址模型匹配的所有地址字段.在这个视图的顶部,我设置了这样的模型:
@model Data.Address

在我的CustomerInfo视图中,我尝试以下操作将地址字段呈现为表单的一部分:

@Html.Partial("~/Views/Shared/Partial/_Address.cshtml")
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

传递到字典中的模型项的类型为"Data.Customer",但此字典需要"Data.Address"类型的模型项.

我假设我收到此错误,因为在我的CustomerInfo视图中声明的模型是Data.Customer类型,它会自动尝试将其传递给我的_Address视图,其中包含Data.Address类型的模型.

正确使这种流动的正确方法是什么?我注意到还有一个@ Html.RenderPartial("ViewName",模型)帮助器,但不知道如何传递它Data.Address,因为我的CustomerInfo视图中的主要模型是Data.Customer.

c# asp.net-mvc razor asp.net-mvc-5

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

删除 StringBuilder SQL 查询中的最后一个逗号

我正在使用 String Builder 创建 SQL 更新查询,如果末尾有逗号,我需要将其删除。

例如:

 Dim query As New StringBuilder
 query.AppendLine("Update Vendor")
 If Not String.IsNullOrEmpty(vendInfo.Name) Then
      query.AppendLine("Set VendorName= @VendorName, ")
 End If
 If Not String.IsNullOrEmpty(vendInfo.VendorType) Then
      query.AppendLine("VendorType= @VendorType, ")
 End If
Run Code Online (Sandbox Code Playgroud)

最后一项的查询错误,因为总会有一个逗号。一旦我完成了我所有的 If 语句,我想从末尾删除一个逗号。

有任何想法吗?

sql vb.net string stringbuilder

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

尝试使用MVC5剃刀中的bootstrap 3获取彼此相邻的两个表单字段(内联)

我试图将WorkPhone和WorkPhone Extension并排放置并在上面的字段下完美对齐,该字段跨越列的整个宽度.这有点起作用,但扩展字段向右延伸太远.理想的情况是它看起来像这样:

工作电话
[文本框] ext [文本框]

这是我有的:

<div class="form-group">
    <div class="row">
        <div class="col-md-8">
            @Html.LabelFor(model => model.WorkPhone, htmlAttributes: new { @class = "control-label" })
            @Html.EditorFor(model => model.WorkPhone, new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.WorkPhone, "", new { @class = "text-danger" })
        </div>
        <div class="col-md-4">
            @Html.LabelFor(model => model.WorkPhoneExt, htmlAttributes: new { @class = "control-label" })
            @Html.EditorFor(model => model.WorkPhoneExt, new { htmlAttributes = new { @class = "form-control" } })
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

javascript css asp.net-mvc razor twitter-bootstrap

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

通过将字符串类型列表设置为字典来创建字典

我试图使用类型字符串列表(productIds)创建此字典,但它是错误的:

出错的部分是p => p: 无法将类型'string'隐式转换为'System.Collections.Generic.IEnumerable'

这对我来说没有意义,因为p => p使得我这样做,所以我将一个字符串传递给第一个参数,然后将新的产品类别列表传递到第二个参数中.

Dictionary<string, IEnumerable<string>> missingProducts =
    productIds.ToDictionary<string, IEnumerable<string>>(
        p => p, p => p 
        new List<string>(productCategories));
Run Code Online (Sandbox Code Playgroud)

这是我在VB.NET中尝试转换的一个工作示例:

Dim productCategories As IList(Of String) = (From pc In prodCategories Select pc.CategoryName).ToList()

Dim missingProducts As Dictionary(Of String, IList(Of String)) = productIds.ToDictionary(Of String, IList(Of String))(Function(p) p, Function(p) New List(Of String)(productCategories))
Run Code Online (Sandbox Code Playgroud)

c# linq dictionary

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

使用Linq在VB.NET中获取ID列表(字符串)

我有一个IList(Of Customer)和Linq我试图将每个customerId添加到类型字符串列表中.

这是我认为会起作用但它不会:

Dim s As List(Of String) = (From c In customers Select c.Id).ToList(Of String)
Run Code Online (Sandbox Code Playgroud)

linq vb.net

0
推荐指数
1
解决办法
3588
查看次数

如果语句与c#中的加法内联

C#不喜欢以下内容.我怎样才能重写它以便它有效?

Value1 = Value1 + (i.Cost == null || !Utils.IsNumeric(i.Cost)) ? 0 : i.Cost;
Run Code Online (Sandbox Code Playgroud)

c# c#-4.0

-3
推荐指数
2
解决办法
85
查看次数