无法使用Fluent Nhibinate和MVC2在VS2010中创建强类型视图

时间:2010-09-24 22:15:14

标签: nhibernate visual-studio-2010 asp.net-mvc-2 fluent-nhibernate

HI, 我想知道是否有其他人在VS2010 MVC 2项目中无法在进行流畅的映射后自动创建强类型视图时出现问题?

当尝试进行映射时,VS2010不会在下拉列表中显示实体,即使我手动将类放入其中,也会自动构建视图。

干杯 丹

2 个答案:

答案 0 :(得分:1)

看起来Vs2010不喜欢与Nhibernate 3有关。链接到v2似乎可以让它按照要求工作,即使重新回到v3。

很奇怪

答案 1 :(得分:0)

您是否公开了您的实体类属性?

脚手架引擎使用.NET反射来查看在传递它的类上公开的公共属性,并将根据每种类型添加适当的内容finds

以下适用于我:

namespace Entities
{
    public class Page
    {
        public virtual int Id { get; private set; }
        public virtual string Name { get; set; }
        public virtual string Title { get; set; }
        public virtual string Description { get; set; }
    }
}



public class PageMap : ClassMap<Page>
{
    public PageMap()
    {
        Table("Pages");
        Id(x => x.Id);
        Map(x => x.Name);
        Map(x => x.Keywords);
        Map(x => x.Description);

    }
}

强类型视图:勾选

查看数据类:Entities.Page

查看内容:列表

然后创建:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<Entities.Page>>" %>

<table>
    <tr>
        <th></th>
        <th>
            Id
        </th>
        <th>
            Name
        </th>
        <th>
            Title
        </th>
        <th>
            Description
        </th>
    </tr>

<% foreach (var item in Model) { %>

    <tr>
        <td>
            <%= Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) %> |
            <%= Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ })%> |
            <%= Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })%>
        </td>
        <td>
            <%= Html.Encode(item.Id) %>
        </td>
        <td>
            <%= Html.Encode(item.Name) %>
        </td>
        <td>
            <%= Html.Encode(item.Title) %>
        </td>
        <td>
            <%= Html.Encode(item.Description) %>
        </td>
    </tr>

<% } %>

</table>

<p>
    <%= Html.ActionLink("Create New", "Create") %>
</p>