我有以下两个实体/模型: public class Achievement
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<User> Users { get; set; }
}
public class User
{
public int Id { get; set; }
public string Username { get; set; }
public ICollection<Achievement&g
我刚刚开始学习实体框架,我面临着与生成模型的序列化相关的问题。我有一个国家和一个国家有许多关系的表格,就像一个国家有许多州。我使用DB first方法,当我使用实体框架创建实体时,类Country有一个ICollection属性。我阅读并发现这是导航属性。让我先展示生成的类如下:
//这是生成的类。
public class Country
{
public Country()
{
States = new HashSet<States>();
}
public int Id
我试图使用实体框架的数据注释来配置表之间的关系。我找到了
public class Student
{
public Student() { }
public int StudentId { get; set; }
public string StudentName { get; set; }
public int StdandardRefId { get; set; }
[ForeignKey("StandardRefId")]
public virtual Standard Standard { get; se
如何使用实体框架连接3个表来构建模型?
现在我有:
public class KeywordAdCategory
{
[Key]
[Column("Keyword_Id", Order = 0)]
public int Keyword_Id { get; set; }
[Key]
[Column("Ad_Id", Order = 1)]
public int Ad_Id { get; set; }
[Key]
[Column("Category_Id", Order = 2)]
我是实体框架核心的新手。在我的购物车模型设计中,我在使用实体框架核心()设计模型类时有点困惑。
我已经将地址集合分配给用户模型,因为一个用户可以使用多个传递地址。
在我的订单模型中,一个用户可以使用多个订单,所以我在order表中声明userID为外键和cartID (因为order属于购物车)。
在处理订单时,在我看来,我的要求是用户应该能够从下拉列表中选择他方便的地址。
这些是我在项目中的模型类:
用户模型:
public class User
{
public int Id { get; set; }
public string userName { get; set;
我有以下实体:
public class User : EntityBase
{
[Required]
[Key]
public Guid Id { get; set; }
public virtual ICollection<BlogEntry> BlogEntries { get; set; }
public virtual ICollection<BlogEntry> [Name?] { get; set; } // User favourite blog entries
}
public class BlogEntry
如果我想要有两个具有多对多关系的表,我如何创建模型和种子数据库?
例如,经典的表、演员和电影。我试过像这样
public class Actor
{
public Actor()
{
this.Movies = new HashSet<Movies>;
}
public int Id { get; set; }
public string Name { get; set; }
public string Surname { get; set;}
public virtual ICollection<Movie> Mo
我有一个具有多到多关系的遗留数据库,如下所示:
public class Post
{
public ICollection<Tag> Tags { get; set; }
...
}
public class Tag
{
public ICollection<Post> Posts { get; set; }
...
}
在“PostTagLink”表中追踪到了多到多的关系。
通常,使用代码首先可以或多或少地隐式地表示多到多的关系,即在添加或删除
我有一个类的实体集,其中有一个食谱;这个食谱可以有多个配料(用外键处理),每个配料可以有一个组件。有几组表格遵循与此类似的模式,其中有几层 当我添加一个配方,其中包含一些最终导致相同组件的配料时,我收到一条错误消息,指出将配方添加到数据库会导致components表上的主键冲突。有没有办法告诉实体,如果一个组件有相同的主键值,它应该被更新而不是插入?我知道你可以使用context.Recipes.AddOrUpdate(recipe)在顶层做到这一点,但是我如何才能在树结构中的每个子层实现它呢? 下面是我已经准备好的实体类的一些总结示例: public partial class Recip
最近,我一直在与MVC 4和实体框架一起创建一个web应用程序。我的数据库"ppProject“模型进行得很顺利,如下所示:
Public Class ppProject
<Key()>
Public Property ProjectID As Integer
Public Property ClientID As Integer
Public Property ProjectTitle As String
Public Overridable Property Client As ppClient
Public Overr
如果我使用实体框架导入模式,我的表会得到一些virtual ICollection表,如果它们在其他表上有外键链接的话。例如:
Table1
Id | ColumnA
Table2
Id | Table1Id_fk | ColumnZ
其中Table1将作为此模型导入:
public class Table1
{
public Table1()
{
Table2s = new HashSet<Table2>();
}
public int Id { get; set; }
public string ColumnA { g
我有以下实体
public partial class Resource
{
public int Id { get; set; }
public string Description{ get; set; }
public virtual ICollection<ResourceCapability> ResourceCapability { get; set; }
}
public partial class Capability
{
public int Id { get; set
我有一个ASP.NET MVC3应用程序,其中我使用了EntityFramework4.3Code-First和Migrations。
我一直试图在同一类型的实体之间建立一种多到多的关系,但是当我用Migrations构建迁移的支架时,它会生成一对一的关系。
这个想法是,一个用户应该能够跟踪多个其他用户(想想Twitter)。
我的User模型如下所示:
public class User
{
public int UserId { get; set; }
public string Name { get; set; }
public DateTime Register
在将实体框架核心与Server一起使用时,我遇到了一个意外的问题。我有一个实体A,在实体B上有一对多的关系。
[Table("client")]
public class Client
{
public long ID { get; set; }
public string Name { get; set; }
public ICollection<Configuration> Configurations { get; set; } = new LinkedList<Configuratio
如何告诉血腥实体框架将关系映射到您想要的列!
我有一张桌子:
public class ShedPart
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public int GroupId { get; set; }
public int ParentGroupId { get; set; }
public string GroupName { get; set; }
请原谅这个稍微令人困惑的标题。我有一个模型(项目),其中包含一个项目列表(用户)。
我想检索所有项目,其中当前用户是该项目的用户列表的成员。
我试过:
List<Project> _MemberProjects =
_Db.Projects.Where(p =>
p.Users.Contains(_User)
).ToList();
这将导致以下错误:
Unable to create a constant value of type 'N
在实体框架中,当我想指定一个实体有许多其他类型的实体时,它似乎向后执行。
例如,假设我有一个关键字实体,在我的应用程序中有几个地方使用。所有关键字都是唯一的,但在我的其他实体上,我希望有多个关键字附加它们,所以对我来说,这是有意义的:
class Page
{
public int ID { get; set; }
public string Name { get; set; }
public virtual ICollection<Keyword> Keywords { get; set; }
}
class Search
{
public i
我有一个学生实体
public class Student{
..
public ICollection<Picture> Pictures {get;set;}
}
和学校实体
public class School{
..
public ICollection<Picture> Pictures {get;set;}
}
当我创建这个模型并运行迁移时,我可以看到,在数据库中的Pictures表中,已经创建了2个外键属性,名为StudentId和SchoolId。
在我看来,把那些外键放在Pictures表里是不对的。
将来,如果另一个实体需要有Pictur
我正在使用一个DB模式,其中记录在更新时不会被覆盖。相反,添加一个新的记录副本并标记为"current“。
例如:
Id | Current | Name | Owner
1 | false | Foo | Bar
1 | false | Foo | Bazz
1 | true | Foo | Buzz
在我的模型中,我有一个Blog实体,它有许多与它相关的Post。每个Post都有许多与其相关的Comment:
public class Blog
{
public int Id {get; set};
public bool Current
在我的DB中,我有以下表:
st_dictionary
id
[other fields]
st_language
id
[other fields]
st_dictionary_language
dictionary_id
language_id
当我创建这些(和其他)表的实体模型时,实体框架看起来足够智能,可以将st_dictionary_language交叉引用表“压缩”到
public partial class st_dictionary
{
public virtual ICollection<st_language
我在用实体框架将更改保存到数据库时遇到了问题。我使用三个表: AspNetUsers、tblCountry和tblCountry_AspNetUsers。
tblCountry_AspNetUsers由两列组成: UserId和CountryId,这在tblCountry和AspNetUsers之间创建了一对多的关系。
目前,我想要做的是更改特定用户的国家,但是实体框架不允许我访问tblCountry_AspNetUsers数据库,而是创建一个ICollection of AspNetUsers on tblCountry。我可以直接在AspNetUser上分配Id,但是我还不想从标识表中添加
给定如下实体:
public class Entity
{
public int Id { get; set; }
public ICollection<EntityTwo> EntityTwos { get; set; }
}
public class EntityTwo
{
public int Id { get; set; }
public int TypeId { get; set; }
public int EntityId { get; set; }
}
通常,Entity.EntityTwos将返回EntityId等于Enti
问题
我有两门课:
OfficeProfile:存在于我的EF中,modelBusinessUnit:来自外部来源,例如web服务。
在office配置文件和业务单位之间有很多到许多关系,我想在链接表OfficeProfilesBusinessUnits中表示。但是,我不想最后得到一个BusinessUnits表,该表包含业务单元列表,因为这些单元存储在我无法控制的外部域中。
是否有可能做到这一点?
public class OfficeProfile
{
public OfficeProfile()
{
ContactNumbers = new HashSet
我有一个域模型,其中许多实体都有需要本地化的内容。例如,我们可能有一个Product实体,其中的名称和描述需要多语言支持。许多其他实体也是如此。
现在这是我想要实现的设计:
class LocalizedContent {
public Guid Id {get; set; }
public virtual ICollection<LocalizedContentEntry> Values {get; set;}
}
class LocalizedContentEntry {
public int Id {get; set; }
publ
我是Entity Framework和C#/.Net的新手,正在尝试创建一个TPH继承模型,我不确定是否应该这样做,所以如果不是,请给我建议,
这是一个模型:
public abstract class Vote
{
public int VoteID { get; set; }
public int UserID { get; set; }
public bool Value { get; set; }
public DateTime DateCreated { get; set; }
public User User { get; set; }
有很多关于急切/延迟加载的问题,但有一点我还是不清楚。我很清楚其中的区别,了解"virtual“关键字以及如何防止延迟加载。
我有一个非常简单的模型:商店,产品,ProductCategory。一个商店可以有许多产品和类别,一个产品必须属于一个商店,并且必须有一个类别。为了简单起见,我在ProductCategory中声明了一个" products“属性,这样我就可以按需获取属于一个类别的所有产品。以下是我的类:
public class Store
{
public Store()
{
this.Product = new HashSet<
当我从实体框架中的模型集合尝试项时,我会得到这个错误。我得到以下错误:
附加类型'‘的实体失败,因为同一类型的另一个实体已经具有相同的主键值。如果图形中的任何实体具有冲突的键值,则使用“附加”方法或将实体的状态设置为“未更改”或“修改”时,就会发生这种情况。这可能是因为一些实体是新的,还没有收到数据库生成的键值。在本例中,使用'Add‘方法或’Add‘实体状态来跟踪图形,然后根据情况将非新实体的状态设置为“未更改”或“修改”。
请有人帮忙我被困在这里是我的密码:
public class Attendees
{
[Key]
public int A
我正在用web开发一个ASP.net应用程序,我有一个数据库,我正在用一个ADO.NET实体框架连接它。
在这个数据库中,我有一个以GroupId作为主键的表Group,另一个以UserId作为其主键的表UserInfo,以及另一个表GroupUser,它不被视为一个实体,而是一个关联集,因为它被用作在组和用户之间具有多对多关系的手段。
GroupUser包含GroupId和UserId作为组合键,这两个键都是各自表的外键。
这些是生成的Group和User类(关于此关系)
// Group
public Group()
{
this.UserInfo1 = new HashSet&l
我在Server中有一个数据模型,它有一个多到多的关系。当实体框架( Entity )对这种关系进行建模时,它会创建一个双向列表引用,如下所示:
public class Class1
{
public ICollection<Class2> Class2s {get;set;}
}
public class Class2
{
public ICollection<Class1> Class1s {get;set;}
}
现在的问题是,在某些情况下(但不是全部),这似乎会导致无限循环。在这种情况下,当我在一个集合上调用Add()时,它会导致框架在两个类
我刚刚开始在我的下一个项目中使用实体框架,我正在为下面的工作而奋斗。我有以下ApplicationUser类:
public class ApplicationUser : IdentityUser
{
public string Name { get; set; }
public int CompanyId { get; set; }
public virtual Company Company { get; set; }
}
我有两个类是这个类固有的:
public class TrainerUser : ApplicationUser
{
publi