我正在使用MySQL .net连接器6.4.4.0和Entity Frame工作4.1,并尝试创建最基本的代码优先实现。
public class myDB: DbContext
{
public DbSet<Vote> Votes { get; set; }
}
我的模特
public class Vote
{
public Guid Id { get; set; }
public int Value { get; set; }
}
我的家庭控制器
public class HomeController : Controller
{
myDB_db = new myDB();
public ActionResult Index()
{
var model = _db.Votes;
return View(model);
}
}
我的强类型视图(使用List脚手架)
@model IEnumerable<Namespace.Models.Vote>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table>
<tr>
<th>
@Html.DisplayNameFor(model => model.Value)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Value)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.Id }) |
@Html.ActionLink("Details", "Details", new { id=item.Id }) |
@Html.ActionLink("Delete", "Delete", new { id=item.Id })
</td>
</tr>
}
</table>
它在mySQL中使用所有正确的属性创建表“ votes”。
但是,它抛出这一行:
@foreach(模型中的var项)
有这个特例:
“表’mydb.vote’不存在”
编辑:澄清一下,我实际上是想要表的复数形式,并且似乎可以正确地创建表。我希望发现单数/复数差异的原因。microsoft / Plural Sight /
scott gu的教程和视频都没有使用mysql处理的,所以我不得不想象.netconnector可能是罪魁祸首。我也想避免使用[Table(“
Votes”)]属性。基本上,我希望有尽可能多的“开箱即用”的解决方案。
edit2(一些更相关的代码):当我删除此…表无法一起创建。但是该视图引发了一个异常,即寻找“投票”而不是“投票”。在global.asax中
protected void Application_Start()
{
Database.SetInitializer(new DropCreateDatabaseAlways<myDB>());
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
public class myDBInitializer : DropCreateDatabaseAlways<myDB>
{
protected override void Seed(myDBcontext)
{
base.Seed(context);
}
}
因此,我放弃了尝试以自己认为应该做的方式来做,并一起消除了多元化。我不确定,但我认为问题与EF的mysql .net连接器有关。这是我所做的。
首先,我的ApplicationStart方法中存在一个错误:
//WRONG
//Database.SetInitializer(new DropCreateDatabaseAlways<myDB>());
Database.SetInitializer(new myDBInitializer());
其次,我不再调用原始代码中未列出的OnModelCreating基本实现,因为我仅按照jgauffin的建议实现了它:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//DONT DO THIS ANYMORE
//base.OnModelCreating(modelBuilder);
//modelBuilder.Entity<Vote>().ToTable("Votes")
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
第三,我在一些帖子中读到,MySQL .net
Connector不允许EF实际创建数据库,因此我最初创建了空白数据库。连接器6.4.4+似乎不再是这种情况,并且只要您的连接字符串的用户具有创建新数据库的能力,如果最初不存在数据库,它的性能就会更好。
一次,我完成了以上所有操作,它似乎起作用了。所以现在我至少可以前进了。希望我们将来能找出造成复数/单数差异的原因。
感谢大家的时间和精力。
问题内容: 到目前为止,我有以下代码: 但这给了我 将varchar值’## show’转换为数据类型int时,转换失败。 我想要实现的是每次执行查询时都创建一个表## show + random number。 例子 : 用@bluefeet所说的内容进行编辑,并找到了一种使用以下方法创建表的方法 但是如何调用或插入此表? 问题答案: 由于要将参数添加到字符串中,因此需要将其强制转换为varch
本文向大家介绍R创建一个数据表,包括了R创建一个数据表的使用技巧和注意事项,需要的朋友参考一下 示例 Adata.table是data.frame从R开始的类的增强版本。同样,它的class()属性是向量"data.table" "data.frame",在a上起作用的函数也data.frame将与data.table一起工作。有很多方法可以创建,加载或强制执行data.table。 建立 不要忘
和类似的服务: 我用的是12个实体,大家的服务方式都一样。 谢谢!
在ASP中。NET MVC,用于创建具有实体框架的模型,表上的主键是必需的吗?
我正在按照本教程将 Graphql 与 Django 集成,当我在本地机器上点击 graphql URL 时,我根据该教程执行了所有操作 http://localhost:8000/graphql 我得到以下错误 断言错误在 /graphql 需要向GraphQLView提供架构。 请求方法:GET请求URL:http://localhost:8000/graphqlDjango版本:1.11.1
问题内容: 我想要创建一个arraylist数组,如下所示: 但是它没有编译。我怎样才能做到这一点? 问题答案: 根据Oracle文档: “你不能创建参数化类型的数组” 相反,你可以执行以下操作: 正如汤姆·霍廷(Tom Hawting)的建议-定位线一样,最好这样做: