标签: ef-code-first

实体框架"代码优先"不播种或创建数据库 - 没有错误

出于某种原因,我的数据库没有被创建,我没有收到任何错误.我正在使用"SQL Server"

要在global.asax.ca文件中初始化数据库:

protected void Application_Start(object sender, EventArgs e)
{
     //BREAKPOINT HITS. GOOD
     Database.SetInitializer<MenuManagerContext>(new MenuManagerServiceInitializer()); 
}
Run Code Online (Sandbox Code Playgroud)

...

public class MenuManagerServiceInitializer : CreateDatabaseIfNotExists<MenuManagerContext>
{
    //BREAKPOINT NEVER HITS. BAD
    protected override void Seed(MenuManagerContext context)
    {
        context.Chains.Add(...);

        context.SaveChanges();

        base.Seed(context);
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有为什么没有创建数据库的想法?我甚至没有收到错误,所以很难说出错了什么......

entity-framework ef-code-first

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

使用linq加载除另一个集合之外的集合

我有这种搜索方法:

public List<Employeees> AutoSuggestEmployeee(string keyword,
    long employeeeTypeId, int count)
{
    return context.Employeees.Where(
        x => x.EmployeeeName.Contains(keyword)
        && x.EmployeeeTypeId == employeeeTypeId)
    .Take(count).ToList();
}
Run Code Online (Sandbox Code Playgroud)

我有另一个Employeees集合,比如"BadEmployeees",我想要的是使用相同的先前方法返回除"BadEmployeees"之外的所有Employeees.

我试着像这样写:

return context.Employeees.Where(
        x => x.EmployeeeName.Contains(keyword)
        && x.EmployeeeTypeId == employeeeTypeId)
    .Except(BadEmployeees).Take(count).ToList();
Run Code Online (Sandbox Code Playgroud)

但它提供了一个例外,Except可以使用Int,Guid等数据类型...

c# linq entity-framework linq-to-sql ef-code-first

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

首先使用EF代码对Id字段进行asp.net mvc 3验证

我有以下型号:

public class Product
{
  [Key]
  [HiddenInput(DisplayValue = false)]
  public int Id { get; set; }

  [Required]
  [StringLength(10)]
  public string ProductCode { get; set; }

  [Required]
  [StringLength(40)]
  public string ProductName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

以及控制器中的以下一对Add方法:

[HttpGet]
public ActionResult Add()
{
  return View();
}

[HttpPost]
[ValidateInput(false)]
[ValidateAntiForgeryToken]
public ActionResult Add(Product product)
{
  productRepository.Add(product);

  return RedirectToAction("Index");
}
Run Code Online (Sandbox Code Playgroud)

这是添加视图:

@using Models
@model Product

<h2>Add Product</h2>

@using (@Html.BeginForm("Add", "Home")) {
  @Html.AntiForgeryToken()
  @Html.EditorForModel()
  <input type="submit" id="btnSubmit" value="Submit"/>
}
Run Code Online (Sandbox Code Playgroud)

一切都显示得很好,不幸的是我无法提交表格.我花了一段时间才弄清楚Id字段是否经过验证.实际上,如果我删除该HiddenInput属性,我可以看到提交它告诉我需要Id字段.

有没有办法在仍然使用时将其标记为不需要EditorForModel()

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

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

如果我们使用具有代码优先方法的Entity框架,是否可以在给定路径上创建数据库(Sql Server compact)?

我对Entity框架有点困惑,我想使用代码优先方法; infact我想写一下我的数据库表是如何通过类定义组成的.

主要的问题是我需要创建一个数据库(或打开它),通过选择它的路径(用户可以选择打开哪个数据库,并在他想要的时候创建新的数据库).我已经选择了Sql server compact来实现这一点,但是我仍然不明白如何使用代码优先方法来处理这种情况,因为我不明白如何选择应该使用代码优先方法创建数据库的位置,如果是可能.

任何人都可以解释我做错了什么,并建议一个不同的路线,如果有的话?谢谢

c# sql-server-ce ef-code-first entity-framework-4.1

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

C#在SQL Server中浮动到Real

我正在尝试使用Entity Framework并拥有一个联系人数据库,其中包含来自Google地图的经度和纬度数据.

指南说这应该存储为浮动.

我创建了我的POCO实体,包括Longitudeas floatLatitudea float.

我刚刚注意到,在数据库中,这些都是如此real.

在我从谷歌获取任何数据之前还有很多工作要做,我离测试很远,我只是想知道是否有人可以告诉我这是否会成为后来的问题?

sql-server ef-code-first entity-framework-4.1

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

实体框架中的外键 - 循环或多个级联路径错误

使用EF Code First我有以下内容,例如:

public class Blog
{
    public int BlogID { get; set; }
    public string Content { get; set; }
    public virtual User User { get; set; }
    public virtual ICollection<BlogMeta> BlogMeta { get; set; }
}

public class BlogMeta
{
    public int BlogMetaID { get; set; }
    public string Content { get; set; }
    public virtual User User { get; set; }
    public virtual Blog Blog { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这将成功生成表Blog和BlogMeta,并与User表创建外键关系.阅读本文后,我将其更改为以下内容:

public class Blog
{ …
Run Code Online (Sandbox Code Playgroud)

entity-framework foreign-keys ef-code-first

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

EF Code First约定允许ICollection <T>属性为空集合而不是null?

我注意到,默认情况下,Entity Framework Code First忽略了实例化ICollection<T>属性,除非集合中至少有一个项目.我更倾向于保证集合总是空的HashSet(即,HashSet零项目),而不是null没有项目存在.

EF Code First是否有任何约定或设置可以启用此功能?

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

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

HasOptional对应的DataAnnotation属性

代码优先的流畅API 的HasOptional方法有一个DataAnnotation属性对应吗?

我想用属性标记我的属性,而不是使用流畅的API.

这是我当前的模型和OnModelCreating代码:

public class Employee
{
  #region Properties

  public int EmployeeID { get; set; }
  public string FirstName { get; set; }
  public string LastName { get; set; }

  public int? ManagerID { get; set; }
  public Employee Manager { get; set; }

  #endregion
}

 protected override void OnModelCreating(DbModelBuilder modelBuilder)
  {
    modelBuilder.Entity<Employee>().
      HasOptional(e => e.Manager).
      WithMany().
      HasForeignKey(m => m.ManagerID);
  }
Run Code Online (Sandbox Code Playgroud)

谢谢

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

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

SQLite CreateDatabase不支持错误

我正在使用Entite Framework 4.2 CF和SQLite,但是当我尝试启动应用程序时,我得到"提供程序不支持CreateDatabase"错误.这是我的模型映射:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            #region NewsMapping

            modelBuilder.Entity<News>().ToTable("news");
            modelBuilder.Entity<News>().HasKey(x => x.Id).Property(x => x.Id).HasColumnName("ID").HasColumnOrder(0);
            modelBuilder.Entity<News>().Property(x => x.Status).HasColumnName("STATUS");
            modelBuilder.Entity<News>().Property(x => x.NewsTitle).HasColumnName("NEWS_TITLE");
            modelBuilder.Entity<News>().Property(x => x.Content).HasColumnName("CONTENT_1");
            modelBuilder.Entity<News>().Property(x => x.IsImportant).HasColumnName("IS_IMPORTANT");
            modelBuilder.Entity<News>().Property(x => x.OrderNumber).HasColumnName("ORDER_NUMBER");
            modelBuilder.Entity<News>().Property(x => x.CreateDate).HasColumnName("CREATE_DATE");
            #endregion

            base.OnModelCreating(modelBuilder);

        }
Run Code Online (Sandbox Code Playgroud)

这段代码有什么问题?

谢谢

sqlite system.data.sqlite ef-code-first entity-framework-4.1 asp.net-mvc-3

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

实体框架4.1:在"登录"类型上声明的导航属性"BusinessUser"已配置了冲突的多重性

我有两个实体

BusinessUser { Id(PK), Name,...}

Login { BusinessUserID(PK, FK), Email, Password, etc...}
Run Code Online (Sandbox Code Playgroud)

BusinessUser和之间的关系Login一对一/一.

我在BusinessUser EF配置类中进行了以下配置

this.HasOptional(bu => bu.LoginInfo)
    .WithOptionalPrincipal(l => l.BusinessUser);
Run Code Online (Sandbox Code Playgroud)

在登录EF配置类中

this.HasRequired(l => l.BusinessUser)
    .WithOptional(bu => bu.LoginInfo);
Run Code Online (Sandbox Code Playgroud)

我得到以下异常

在"登录"类型上声明的导航属性"BusinessUser"已配置了冲突的多重性.

我首先在EF 4.1代码中使用我的一对一/零配置错误.

更新1:以下是我的班级结构

public class BusinessUser {
    public virtual int ID { get; set; }

    public virtual int BusinessID { get; set; }

    public virtual Business Business { get; set; }

    public Login LoginInfo { get; set; }
  }

 public class Login {
    public …
Run Code Online (Sandbox Code Playgroud)

orm ado.net entity-framework ef-code-first entity-framework-4.1

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