目前,我的实体使用的模型如下:
public class MyModel
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public virtual User User { get; set; }
}
这工作得很好,但我经常看到CodeFirst示例中为模型中的外部实体显式创建了Id属性。这是有意义的,因此我不必延迟加载用户来检索与MyModel实例相关联的用户的id值。
但是,当我将MyModel更改
我通过code-first定义了下面的表:
public class Action
{
public int ActionId { get; set; }
public int? EmailMessageId { get; set; }
public virtual EmailMessage EmailMessage { get; set; }
}
public class EmailMessage
{
public int EmailMessageId { get; set; }
public string Content { get;set;
我有一个用户对象,当在DbContext上使用Remove()删除它时,它不会从数据库中删除。奇怪的是,我用于检索用户的查询不再返回它。
这段代码在我的应用程序中使用,并且适用于其他实体,没有任何问题。
我真的很感谢关于这可能是什么的建议,因为我被难住了!
#region Delete
public virtual void Delete(User entity)
{
var user = _context.Users.FirstOrDefault(u => u.UserId == entity.UserId);
if (user != n
我先用EF码。一个简单的模型:
item { public int Id {set; get;},... ,ICollection<ItemImages> {set; get;} }
itemImages {
public int Id {set; get; },
public int ItemId {set; get; }
, ... ,
public Item Item {set; get; }
}
ItemConfig:EntityTypeConfiguration<
我在许多地方读到,应该(通常)在实体中使用外键id,因为它是数据库的详细信息,实际上,EF通过向相应的表中添加一个EntityName_Id列来很好地管理它。
public class Order
{
public decimal Total { get; set; }
public int? InvoiceId { get; set; }
public Invoice Invoice { get; set; }
}
public class Invoice
{
public ICollection<Order> Orders { get; set
我有下面的模型。
public class Parent
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Child> Children { get; set; }
}
public class Child
{
public int Id { get; set; }
public string Name { get; set; }
public int ParentId { get; set; }
我有两个实体- Team和Game。一支球队可以有许多比赛(一对多).
所以看起来是这样的:
public class Team
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Game> Games { get; set; }
}
public class Game
{
public int Id { get; set; }
public DateTime
尝试插入具有null关联实体的实体时出现问题。
我只是在做:
pUser.DogAndUser = null //dogAndUser is the relationship between dog and user
context.User.Add(pUser)
但是在这里我得到了一个错误,说外键idDog在Dog表中不存在。当然不是..我给它一个空的association..Then,我确认它正在尝试插入相关的实体,在Dog中插入一行,然后在DogAndUser relationship..which中传递值,没有抛出错误,并且确实在relationship..but中插入了一行,为什么
这适用于实体框架4 (4.3.1)和5。
我有一个用户类(与实体框架MembershipProvider一起使用)。为了简化,我删除了一些属性。实际用户来自MVCBootstrap项目,因此它与其他类不属于同一个程序集。
public class User {
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
[Required]
[StringLength(256)]
public String Username { get; set;
我有三个实体: User、Domain和Role。
我使用这个类来定义三个实体之间的关系:
public class UserDomainRole
{
[Key]
public int UserId { get; set; }
[Key]
public int DomainId { get; set; }
[Key]
public int RoleId { get; set; }
}
那么如何设置UserDomainRole和其他三个表之间的外键关系呢?是这样的吗?
public class Den
我阅读了许多遇到的程序员的帖子,这些文章无法确定依赖操作的有效排序。在实体框架中使用自引用关系时,由于外键约束、模型需求或存储生成的值 -exception,可能存在依赖关系。
我试着让父母和孩子的关系去工作:
public class Category {
public int CategoryId { get; set; }
public string Name { get; set; }
public int ParentId { get; set; }
public Category Parent { get; set; }
public Lis
我在使用代码从实体创建数据库时遇到了问题。请考虑这两个类。CourseTn类
public class CourseTn
{
// Pk
public CourseLevel CourseTnId { get; set; }
// Properties
public string Title { get; set; }
public virtual List<CourseTnImage> CourseImage { get; set; }
public virtual List<ChapterTn> Chapte
public JsonResult CreateOrder([FromBody]CustomerOrderModel orderModel)
{
var customer = _customerService.GetCustomer(orderModel.customerid);
var order = new OrderViewModel();
order.Customer = customer;
order.OrderPlacedOn = DateTime.Now;
order.OrderForCustomer = customer.Busine
我在C# MVC 5框架的基础上用ASP.NET编写了一个项目。我使用实体框架6.2ORM与我的数据库进行交互。
我有以下两个实体类
public class User
{
[Key]
public int Id { get; set;}
public string FirstName { get; set; }
public int? MainClassRoomId { get; set; }
// ....
[ForeignKey("MainClassRoomId")]
public virtual ClassRo
我一直收到这个错误,我不知道为什么。
类型“”BioSheet.Models.BioSheetModel“”的属性“”Ward“”的ForeignKeyAttribute无效。“”在依赖类型'BioSheet.Models.BioSheetModel‘上找不到外键名称'WardId’。Name值应该是以逗号分隔的外键属性名称列表。
public class Ward
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
我有下面的代码。我想要构建一个流畅的映射,这样我的映像就有了一个由Defect_Id和Asset_Id组成的不可空的复合主键。我怎样才能做到这一点?我得到了错误属性'TSIR.Core.Domain.Image‘不能用作实体’TSIR.Core.Domain.Image‘上的键属性,因为属性类型不是有效的键类型。只支持标量类型、字符串和byte[]键类型。
public class Image
{
public Defect Defect { get; set; }
public int AssetId { get; set; }
}
public class Def
我有一个名为Code的实体类。它存储不同种类的类别--我需要为这些数据创建许多小表格,例如用户类别、费用类别、地址类型、用户类型、文件格式等。
public class Code
{
public int Id { get; set; }
public string CodeType { get; set; }
public string CodeDescription { get; set; }
public virtual ICollection<Expense> Expenses { get; set; }
public virtu
我试图用以下代码删除一个关系:
var serverVideo = InternalGetVideo(db, videoId);
// get owning user
var owner = InternalGetUser(db, serverVideo.UserId);
// Add/remove video to user's upvotedVideos
if (owner.UpvotedVideos.Contains(
我有一个包含以下代码的(示例)应用程序:
public class Posts
{
[Key]
[Required]
public int ID { get; set; }
[Required]
public string TypeOfPost { get; set; }
public int PollID { get; set; }
public virtual Poll Poll { get; set; }
public int PostID { get; set; }
public virtual Post
我有两个相关的实体,但是遗留sql模式实际上有两个键列用于同一个表(而不是一个2列键:参见下面)。我需要创建一个关系回到'faux键‘列。是否有一种在实体框架4.1中以声明方式进行此操作的方法?
Public Class Client
Inherits ModelBase
<Key(), Required()>
Public Property ClientID As Decimal
<Required(), StringLength(50)>
Public Property ClientCode As String
在“我的实体-框架代码-第一模型”中,我有一个表,它需要一个列才能有唯一的值。我想对它应用一个独特的索引,因为我看到它在EF 6.1中非常容易
public partial class User
{
public int Id { get; set; }
[Index(IsUnique = true)]
public virtual SharePoint SharePoint { get; set; }
}
在为该代码创建迁移时,将生成以下内容:
public override void Up()
{
CreateTable(
"dbo.Us
我们的数据库有三个实体:Person、Company和PhoneCall。
Person描述的是一个个体。Company描述了一家公司。PhoneCall描述与Person或Company的电话呼叫的详细信息。
public class Person
{
public int Id { get; set;}
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime DateOfBirth { get; set; }
}
public cl
我用下面的方式设置了3个实体。
public class Person
{
[Key]
public int PersonId { get; set; }
public virtual ICollection<Location> Locations { get; set; }
}
public class Location
{
[Key]
public int LocationId { get; set; }
public int PersonId { get; set; }
public virtual Person P