- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个包含 MvcHtmlString 类型变量的页面类。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
using System.Globalization;
using SpringHealthOne.SpringWS;
using System.Configuration;
namespace SpringHealthOne.Models
{
public class Page
{
public int PageID { get; set; }
[Required]
public string Title { get; set; }
[Required]
public MvcHtmlString PageBody { get; set; }
public string MetaTitle { get; set; }
public string MetaDescription { get; set; }
public string Keywords { get; set; }
public bool Published { get; set; }
}
}
这本身很好,visual studios 2012 没有报告任何错误或警告。但是,当我尝试以 Debug模式启动项目时,它会抛出:
One or more validation errors were detected during model generation:
\tSystem.Data.Entity.Edm.EdmEntityType: : EntityType 'MvcHtmlString' has no key defined. Define the key for this EntityType. \tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet 'MvcHtmlStrings' is based on type 'MvcHtmlString' that has no keys defined.
显示它的行在我的 MenuController 中:
IEnumerable<MenuItem> menuItems = db.MenuItems.Where(c => c.ParentID == null).OrderBy(c => c.DisplayOrder).Select(c => c);
我一直跟踪到调用 Page 类的数据库上下文,但我无法弄清楚为什么我会看到具体的错误。
上下文:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
using System.Data.Entity.ModelConfiguration;
using System.ComponentModel.DataAnnotations.Schema;
using SpringHealthOne.App_Start;
using System.Web.Mvc;
namespace SpringHealthOne.Models
{
public class SpringerContext : DbContext
{
public DbSet<MenuItem> MenuItems { get; set; }
public DbSet<Page> Pages { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
Database.SetInitializer<SpringerContext>(new SpringerContextInitializer());
modelBuilder.Configurations.Add(new MenuItemConfiguration());
base.OnModelCreating(modelBuilder);
}
}
}
我对 C# 很陌生,对 MVC 更是如此。任何帮助都会很棒。
最佳答案
MvcHtmlString
不是原始类型,所以不能直接保存到数据库的字段中。并且实体类型需要 ID 属性(否则您将无法在数据库中设置外键)。如果您想将 Page
对象存储在数据库中,请使用简单的 string
而不是 MvcHtmlString
。
您还可以将此属性标记为未映射并创建将保存到数据库的字符串属性:
[NotMapped]
public MvcHtmlString PageBody { get; set; }
public string Body
{
get { return PageBody.ToHtmlString(); }
set { PageBody = new MvcHtmlString(value); }
}
关于c# - EntityType 'MvcHtmlString' 没有定义键 - MVC 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20188648/
我刚刚开始使用 BreezeJS,并将 HotTowel 模板与 Asp.Net Web Api 和 EF 结合使用 我已经尝试使用 manager.getEntityByKey 检索记录,使用 ht
我的代码在 Solution.Models.Worker 中: using System; using System.Collections.Generic; using System.Linq; u
请帮我解决这个问题。我已经坐了 2 天了,不知道我哪里做错了。我在下面看过这篇文章: EntityType 'MyProfile' has no key defined. Define the key
我的模型类是 public class posts { [Key] public int AuthorId; public string author_first_name;
我不确定为什么会收到此错误消息。我在我的 sql 数据库中为其定义了一个主键。这是我的代码: [HttpPost] public ActionResult Register(RegisterM
这个问题在这里已经有了答案: EntityType has no key defined error (13 个回答) 5年前关闭。 开发一个基本的 ASP.net MVC 4 应用程序。它是一个简单
我正在使用 Entity Framework Code First 和 MVC 5。当我使用个人用户帐户身份验证创建应用程序时,我获得了一个帐户 Controller 以及所有必需的类和代码,需要使个
我有 80 个表的数据库(每个表都有主键)。我已经从数据库(添加 - 新项目 - ADO.NET 实体数据模型)在 ASP.NET MVC 项目中生成了模型。但是在生成的模型中,我有 80 个类(对于
我有一个接收参数的操作,我想打印出所有结果 public ActionResult MusicaGenero(string genero) { //should return
我正在使用 EF Code First 和 Data Scaffolding 并且有一个包含类型属性的实体 public System.Drawing.Image Image { get; set;
在 Entity Framework 4.3.1 中,我有以下模型,它们运行良好: public class BaseUser { [Key] [MaxLength(100)]
我有一个 Entity Framework Code First 模型,其中有一个未映射的列,我仍然希望在服务器和客户端之间保留该列。该模型看起来与此类似,但具有更多属性: public class
我正在创建一个应用程序,用户可以在其中通过 Facebook oAuth 登录,然后设置歌曲列表。我收到以下错误消息: BandFinderCsharp.Models.IdentityUserLogi
C# 代码(EF6 代码优先): public class ProjectSourceProject { [Key, Column(Order = 0)] //[Key, Column
我有两个类 User.php 和 Group.php,它们是从 fosuserbundle 中定义的类扩展而来的。 除此之外,我在它们之间有一个 ManyToMany 关系。 该应用程序的想法是,当我
在我的项目中,我使用一个表(用户任务)中的数据来描述创建预订记录(预订表)的数据。在表单中,我尝试接收选择列表。运行时报错: Expected argument of type "Doctrine\O
Controller : using System; using System.Collections.Generic; using System.Linq; using System.Web; us
我已将 Symfony 的 EntityType 扩展为 UserChooserType 以用于我的 User 实体和 Select2。 UserChooserType 的选择列表来自 ldap 查询
我有一个带有 EntityType 类型字段的表单: $builder->add( 'contacts', EntityType::class,
我有一个像这样的表单字段: $form->add('tags', EntityType:class, array( 'class' => Tags::class, 'multiple'
我是一名优秀的程序员,十分优秀!