标签: ef-code-first

代码优先改变桥实体表的名称

有没有办法控制桥实体创建的表的名称?现在,如果我运行这个:

public class Foo
{
    public Int32 FooId { get; set; }
    public virtual ICollection<Bar> Bars { get; set; }
}

public class Bar
{
    public Int32 BarId { get; set; }
    public virtual ICollection<Foo> Foos { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

得到的桥表名为BarFoo,任何使它成为FooBar的方法?

c# asp.net-mvc entity-framework ef-code-first

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

Update-Database时的实体框架4.3迁移异常

从EF 4.2升级到迁移到EF 4.3并启用迁移,重新启动Visual Studio和所有内容,每当我尝试调用Update-Database/Add-Migration时,我得到:

System.Reflection.TargetInvocationException:调用目标抛出了异常.---> System.ArgumentException:
参数不正确.(来自HRESULT的异常:0x80070057(E_INVALIDARG))
---内部异常堆栈跟踪结束---
在System.RuntimeType.InvokeDispMethod(String name,BindingFlags invokeAttr,Object target,Object [] args,Boolean [] byrefModifiers,Int32 culture ,String [] namedParameters)
位于System.RuntimeType.InvokeMember(String name,BindingFlags bindingFlags,Binder binder,Object target,Object [] providedArgs,ParameterModifier [] modifiers,CultureInfo culture,String [] namedParams),
位于System.Management.Automation. ComMethod.InvokeMethod(PSMethod方法,Object []参数)
Update-Database:调用目标抛出了异常.
在行:1 char:1
+ update-database
+ ~~~~~~~~~~~~~~~
+ CategoryInfo:OperationStopped :(异常有b ...一个调用.:String)[Update-Database] ,RuntimeException
+ FullyQualifiedErrorId:调用目标抛出了异常.,Update-Database

我尝试清理整个项目,删除ef和migration和packages文件夹并从头开始执行它仍然是同样的错误!

任何人都面临同样的错误?或者有解决方案吗?

entity-framework ef-code-first

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

InnerException {"无效的对象名称'dbo.Users'"}

我目前正在尝试首次设置ASP.Net MVC 3应用程序.我知道我在使用Ruby on Rails做了什么,但完全失去了ASP.Net.我希望该应用程序创建数据库,但不知道我做错了什么.我有一个名为ssDB的空数据库构建.我已经设置了connectionStrings并构建了Model类.根据我已经阅读的所有内容,当我去运行应用程序时它应该创建数据库,但它看起来不那样.

我得到的缩写错误是:

InnerException: System.Data.SqlClient.SqlException
Message=Invalid object name 'dbo.Users'.
Source=.Net SqlClient Data Provider
ErrorCode=-2146232060
Class=16
LineNumber=1
Number=208
Procedure=""
Server=TESTSVR01
State=1

entity-framework ef-code-first asp.net-mvc-3

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

实体框架代码第一个数据库文件未在APP_DATA中创建,但查询工作

我博客的模型:

namespace AlexPeta_2.Models
{
    public class Article
    {
        public int ArticleId { get; set; }
        public string Title { get; set; }
        public string Text { get; set; }
        public char Published { get; set; }
        public DateTime CreatedDate { get; set; }
        public char AllowComment { get; set; }

        public virtual ICollection<Tag> Tags { get; set; }
        public virtual ICollection<Comment> Comments { get; set; }
    }
}

namespace AlexPeta_2.Models
{
    public class Comment
    {
        public int CommentId { get; …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc code-first ef-code-first entity-framework-4.1

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

为什么延迟加载在剃刀视图(cshtml文件)中不起作用?

我在cshtml文件中写下以下语句: -

@{
string categoryName = string.Format("{0}->{1}", label.Category.Parent.Name,
label.Category.Name);
@categoryName
}
Run Code Online (Sandbox Code Playgroud)

并得到一个例外Object reference null.

另一方面,同样适用于Controller.cs文件和即时窗口.我知道它与延迟加载有关.

它背后是否有任何概念,它在Cshtml文件中的表达式中不起作用?

谢谢

lazy-loading razor ef-code-first entity-framework-4.1 asp.net-mvc-3

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

实体框架 - 不需要创建类别字段

我有两个POCO对象:

public class Product
{
    public int ProductID { get; set; }
    public string Name { get; set; }
    public int CategoryID { get; set; }
    public virtual Category Category { get; set; }
}

public class Category
{
    public int CategoryID { get; set; }
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

很明显,当我创建产品时,我可以为该产品选择一个类别.或者更确切地说,需要一个类别.

我无法在没有明确选择类别的情况下创建产品,并且我的数据以这样的方式构建,我不想创建"无类别"类别条目.

我已经考虑过在这两个表之间进行多对多映射......但是如果可能的话我想避免使用它.

我要么做些傻事,要么就是没有办法做到这一点.

任何帮助,将不胜感激!

poco ef-code-first entity-framework-4.1

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

如何通过Code First方法在Entity Framework 4.3中实现继承Table-Per-Type?

我在代码中有这个类层次结构:

[Table("A")]
public class A : IIdentification
{
    public int id { get; set; }
}

[Table("B")]
public class B : A
{
    //some properties here
    public Aid { get; set;}
    ForeignKey("Aid");
    public A A { get; set; }
}

[Table("C")]
public class C : B
{
    //some properties here 
    public Bid { get; set; }
    ForeignKey("Bid");
    public B B { get; set; }
}

[Table("D")]
public class D : C
{
    public Cid { get; set;}
    ForeignKey("Cid");
    public C …
Run Code Online (Sandbox Code Playgroud)

entity-framework table-per-type ef-code-first

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

为可为空的外键创建导航属性

我正在使用EntityFramework v4.3.1并通过继承DbContext并覆盖OnModelCreating()来通过代码构建我的模型.我有一个名为Companies的表和一个名为Messages的表.该消息表有一个空的外键Messages.CompanyId.设置此选项后,特定邮件将与特定公司相关联.当此字段为空时,消息将与所有公司相关联.

我的问题是我不知道如何在OnModelCreating()方法中表达这种行为.如果我做:

modelBuilder.Entity<Message>().HasRequired(o => o.Company).WithMany(o => o.Messages).Map(o => o.MapKey("CompanyId"));
Run Code Online (Sandbox Code Playgroud)

我成功获得公司的导航属性,以便我可以执行TestCompany.Messages之类的调用,并获得与特定公司关联的消息列表.但我还需要返回所有空消息.

怎么能实现这一目标?

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

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

EF Code First与SQL Server Express 2012 ConnectionString

使用以下连接字符串,一切正常.

<add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)

我最近在我的本地机器上安装了SQL Server 2012 Express进行测试,但我无法建立连接.这是我使用Windows身份验证的连接字符串.

<add name="ApplicationServices" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=testdb;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)

我是一个全力以赴的人,他尽力搜索论坛,但我无法将我的解决方案推迟到"有类似头衔的问题"部分.任何帮助是极大的赞赏.

ef-code-first sql-server-2012-express

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

实体框架DbContext没有看到app.config/web.config中的连接字符串

所以,我已经按照ADO.NET团队博客的指示尝试制作一个小型测试项目.我仔细检查了一切.它似乎不起作用,并一直说连接字符串丢失.

http://blogs.msdn.com/b/adonet/archive/2011/03/15/ef-4-1-model-amp-database-first-walkthrough.aspx

步.1构建此UserModels.dll.在dll,App.Config文件中,edmx生成了这个连接字符串:(在创建它时点击'test'按钮,它成功连接,并从'UserDatabase'生成所有表的edmx图)

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <connectionStrings>
    <add name="UserModelsContainer" connectionString="metadata=res://*/UserModels.csdl|res://*/UserModels.ssdl|res://*/UserModels.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=MyDesktop\SQL2008;initial catalog=UserDatabase;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

第2步然后我做了一个测试项目:

class UnitTetst1 ....
TestMethod1()....
using (var db = new UserModelsContainer()) {
  int i = db.Users.Count(); // <---expecting '0' for a new db, but I get an exception
}
Run Code Online (Sandbox Code Playgroud)

---------问题在这里-----------------

步骤3.运行测试.然后我得到一个错误InvalidOperationException像这样:

"No connection string named 'UserModelsContainer' could be found in the application config file."
Run Code Online (Sandbox Code Playgroud)

好像DbContext不知道在哪里从App.Config中取出connectionStrings?

请帮帮忙~~

entity-framework ef-code-first database-first dbcontext

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