我正在编写一个ASP.NET MVC web应用程序,它可以跟踪游戏中的字符。我们使用的是代码优先的方法来建立数据库。其中一个用例是存储属于每个字符的项,以便将它们显示在库存视图中。
我对ASP.NET MVC相当陌生,我想知道最好的方法是存储属于用户的项对象吗?目前,我有每种类型的项目清单(见下文)。这种方法是否适用于实体框架?
public class Character : ParentClass
{
public List<Skill> Skills { get; set; }
public List<Armour> Armours { get;
我有三个班级:学生、教师和文档。学生和教师可能有许多文档
public class BaseEntity
{
public int ItemId { get; set; }
public bool IsDeleted { get; set; }
}
//ParentType Student = 1
public class Student : BaseEntity
{
public string Name { get; set; }
public string Surname { get; set; }
public ICollection<
我在许多地方读到,应该(通常)在实体中使用外键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
基于在这个问题中提供的解决方案:,我能够使用id字段更新我的外键。
但是现在,当从数据库中获取实体时,我得到了一个异常。使用此代码:
// Retrieve data first
using (var db = new TestDbContext())
{
var p2 = db.Persons.First();
}
我得到以下SqlException:“无效列名‘Country_Id1’”。
是否有任何线索可以检索数据和来更新外键?以另一种方式询问,是否可以同时使用导航属性来简化对我的实体和外键的id的使用,以便能够更新我的从属实体?
我的实体
public class Person
在实体框架中创建表时,不会在表中设置任何键。但是,当表作为键在表中创建id字段时,为什么?
public class EntityBase
{
public long Id { get; set; }
public DateTimeOffset? DeletedOn { get; set; }
public string RefId { get; set; }
public DateTimeOffset CreatedOn { get; set; }
}
第404页上的“JavaPersistence2.0,最终版本”有以下示例:
示例3:从可嵌入类到另一个实体的一对一关联。
@Entity
public class Employee {
@Id int id;
@Embedded LocationDetails location;
...
}
@Embeddable
public class LocationDetails {
int officeNumber;
@OneToOne ParkingSpot parkingSpot;
...
}
@Entity
public class ParkingSpot {
@I
对于使用实体框架的wpf应用程序,我需要向其中一个实体类添加一个实体属性。例:有一个多对多的关系,有两个表和一个结合表。
客户: ID,姓名,地址。产品: ID,名称
CustomerProduct : CustomerID,ProductID
我正在尝试向自动生成的实体数据类Cutomer添加一个属性colProducts,如下所示:
public partial class Customer
{
public Products colProducts;
public Products ColProducts
{
get { return c
我正在使用EntityFramework.Extended库在我的系统中实现审计日志。但是,当我在Person对象上更新外键'TitleId‘时,它不会将其注册为外键,也不会用我选择的显示字段替换Id。
审核日志配置:(这在我的Global.asax启动文件中被调用)
public static class AuditLogConfiguration
{
public static void Register()
{
var auditConfiguration = AuditConfiguration.Default;
我想要创建一个数据库表,其中包括这两个实体类的关系。在迁移之后,我无法看到关系表,只有我的db set表。我将共享下面的代码。
这是一个实体,
public class Server:IEntity
{
[Key]
public int ServerId { get; set; }
public string ServerPassword { get; set; }
// public List<AppUser> UserId { get; set; }
在领域驱动的设计中,域模型应该完全不知道任何数据持久的细节。
假设Employee属于Department。域实体可能如下所示:
public Employee
{
public string EmployeeId { get; set; }
public string FirstName { get; set; }
public string LastName{ get; set; }
public Department Department { get; set; }
public int DepartmentId { get; set; }
}
在我的Chen图上,我有一个实体Orders,它具有以下属性: ID (主键)、ProductID、UserID、Quantity。
现在,它从从products表购买订单时获得ProductID。因此,即使ProductID是订单的属性,它也是我图表中产品和许多其他实体的属性。我怎样才能最好地表达这一点?是否就像在每个使用ProductID的实体中一样简单,我只是把它放在那里?
火鸟2.5
实体框架5
FirebirdClientDll 3.0.0.0
嗨,我正在尝试使用实体框架(首先代码)访问我的遗留数据库。我的问题是数据库不使用外键..。
public class CUSTOMERS
{
public int CUSTOMERID { get; set; }
public string NAME{ get; set; }
}
public class INVOICES
{
public int INVOICEID{ get; set; }
public int CUSTOMERID{ get; set; }
我经常使用实体框架,但我有一个困惑,我想更好地理解。
如果我想在一个实体中拥有一个导航属性,比如
public virtual ExampleObject Example {get;set;}
拥有Id属性也是已完成的事情。
public int ExampleId {get;set;}
我的理由是,这会创建一个FK,但如果我忽略它,功能是相同的,而且FK似乎无论如何都是创建的。那么,是否有理由需要额外的字段?
有一个模型Thread,它应该包含另一个名为Post的模型的所有属性,我使用继承:
class Post {
public int Id{get;set;}
public string Title{get;set;}
// ...
}
class Thread: Post {
public int ForumId{get;set;}
// ...
}
EF将两者放在一个表中,并添加列Discriminator。它包含类名,以便.NET核心可以将其序列化为正确的类型。
我的目标是:
表Post,包含来自Post模型的所有属性
表Thread,包含来
我是实体框架的新手,我只是不知道在代码优先的方法中关系是如何工作的。
例如,考虑三个实体:Users、Pictures、Posts。
用户可以有多张图片。
一篇文章可以有多张图片。
从数据库的角度来看,这是3个表+2个连接表(UserPictures,PostPictures)。
到目前为止,我没有在数据库中创建外键关系:
[Table("Users")]
public class User
{
[Key]
public int Id { get; set; }
[Required]
public string FirstNam
我在Entity Framework 6.1.3中有以下数据模型:
using System.Data.Entity;
public class Student
{
public int Id { get; set; }
public virtual Contact Contact { get; set; }
}
public class Contact
{
public int Id { get; set; }
public virtual Student Student { get; set; }
}
public class MyContext :
这个问题经过了彻底的编辑,经过进一步的调查,实际上已经勾勒出了根本问题。
我在客户端元数据上没有显示导航属性时遇到了问题。随着对微风客户端代码的深入研究,我发现parseCsdlNavProperty中的以下代码(第6181行)导致忽略all --我的集合导航属性:
var constraint = association.referentialConstraint;
if (!constraint) {
// TODO: Revisit this later - right now we just ignore many-many and assocs with missing co
我想删除内容(只删除数据,而不删除结构和外键)。所有表(使用实体框架4+的所有实体)。这是如何做到的呢?我在Visual 2010中使用SQLCE和实体框架。
entities.ExecuteStoreCommand("DELETE FROM TABLENAME");
上面的查询并不会删除所有行。稍后,我还会使用where类的
entities.ExecuteStoreCommand("DELETE FROM TABLENAME WHERE COL1=0");
我有一个简单的'TODO‘列表的Silverlight 4应用程序。我遇到的问题是,数据库正在连接我的TODO对象上的关系,这会导致DataContext.TODOs数据上下文在我希望它出现之前将它添加到DataContext.TODOs列表中。我希望将对象视为新的和分离的,直到我显式地准备将它添加到数据文本。
下面是它的工作原理:我有我的TODO实体,它与Status (RIA服务实体关系)相关联。
我创建了一个新的TODO()实体,它被传递给一个ChildWindow弹出窗口。注意,我没有将这个新实体添加到我的数据文本中。
new CreateTODOPopup(new TOD
我有几张桌子看起来像这样
表A
[Id] IDENTITY INT NOT NULL
表B
[Id] IDENTITY INT NOT NULL,
[TableAId] INT NOT NULL,
CONSTRAINT [FK_TableB_TableA] FOREIGN KEY [TableAId] REFERENCES [TableA]([Id])
表C
[Id] IDENTITY INT NOT NULL,
[TableAId] INT NOT NULL,
[TableBId] INT NULL,
CONSTRAINT [FK_TableC_TableA] FOREIGN KEY [