24 entity-framework ef-migrations
我有一个相当标准的设置与简单的POCO类
public class Project
{
public int ProjectId { get; set; }
public string Name { get; set; }
public int? ClientId { get; set; }
public virtual Client Clients { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
他们使用界面
public interface IProjectRepository
{
IEnumerable<Project> Projects { get; }
}
Run Code Online (Sandbox Code Playgroud)
并构造为ninject绑定到的存储库
public class EFProjectRepository : IProjectRepository
{
private EFDbContext context = new EFDbContext();
public IEnumerable<Project> Projects
{
get { return context.Projects; }
}
}
Run Code Online (Sandbox Code Playgroud)
实际的上下文是一个简单的DbContext
public class EFDbContext : DbContext
{
public DbSet<Project> Projects { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
当我尝试启用代码首次迁移时,我收到以下错误

我已经完成了其他项目的这个过程,从来没有出现过错误.这是连接到本地Sql Server数据库.连接字符串似乎没有问题.我在网上搜索过这个错误,但解决方案似乎回答了与我的设置没有直接关系的问题.
Th4*_*Guy 30
我有同样的问题,原因是POCO类具有类型的属性Type.
Jam*_*mes 24
游戏后期...但如果它有帮助......
我有同样的问题,一切都运行正常,但出现了这个问题,我在我的一个课程中添加了以下内容
public HttpPostedFileBase File { get; set; }
Run Code Online (Sandbox Code Playgroud)
这似乎打破了它.
我确保我没有使用以下内容将其映射到数据库:
[NotMapped]
public HttpPostedFileBase File { get; set; }
Run Code Online (Sandbox Code Playgroud)
您需要添加以下using语句:
using System.ComponentModel.DataAnnotations.Schema;
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
小智 7
如果未在DbContext中声明其中一个POCO类,则可能会发生此问题.
我添加了它们,错误就消失了
我更改了TaskPOCO类的名称,因为它与内置的.NET名称相关联System.Threading.Tasks.但是我没有在有任何关系的"TaskTimeLog"POCO中改变这个.在执行代码时,"TaskTimeLog"POCO中的"任务"属性没有显示错误,因为它现在附加到该线程关键字以及我首先更改了名称的原因.
我收到此错误:
值不能为空。参数名称:entitySet
原来我试图加入来自 2 个不同 DbContext 的数据。
var roles = await _identityDbContext.Roles
.AsNoTracking()
.Take(1000)
.Join(_configurationDbContext.Clients.ToList(),
a => a.ClientId,
b => b.Id,
(a,b) => new {Role = a, Client = b})
.OrderBy(x => x.Role.ClientId).ThenBy(x => x.Role.Name)
.Select(x => new RoleViewModel
{
Id = x.Role.Id,
Name = x.Role.Name,
ClientId = x.Role.ClientId,
ClientName = x.Client.ClientName
})
.ToListAsync();
Run Code Online (Sandbox Code Playgroud)
解决方法是添加ToList如图所示。然后连接将发生在代码而不是数据库中。
仅当您可以检索整个表时才执行此操作。(我知道我的“客户”表总是相对较小。)
| 归档时间: |
|
| 查看次数: |
29737 次 |
| 最近记录: |