我目前使用的是EF Core 3.0。因此,我想通过基表请求来实现TPH模型数据的选择。让我们看看下面的例子: public class BaseClass
{
public int Base {get;set;}
}
public class Foo : BaseClass
{
public int FooMember {get;set;}
}
public class Bar : BaseClass
{
public int BarMember {get;set;}
}
public DbSet dbSet {get;set;} 我想实现这样的代码: var get
当使用EF/ code -first将实体保存到数据库时,有没有一种很好的方法来执行代码?
我的许多实体上都有一个Url属性。如果没有显式地给出URL,我想在对象持久化时计算一个URL,例如:
public void OnModelSaving()
{
// If a URL has not been specified, generate one from the name.
if (this.Url == null)
{
this.Url = Helper.GenerateSafeUrl(this.Title);
}
}
理想情况下,我希望所
如果我将这个作为我的TPT模型:
public class Foo
{
public Int32 Id { get; set; }
public string Text { get; set; }
}
[Table("Bars")]
public class Bar : Foo
{
public string MoreText { get; set; }
}
以及如下所示的派生DbContext:
public class MyContext : DbContext
{
public DbSet<Foo> Foos { get;
我有一个实体框架问题。我有这段代码,MyType2是从MyType1派生的:
var EF = AppDbContext.Current;
var result = EF.Set<MyType1>().Where(
x => x.Type == "MyType2" &&
EF.Set<MyType2>().Any(y => y.Code == ((MyType2)x).Code)
);
当我运行它时,它会抛出'NotSupportedException':无法将类型'MyType1‘转换为键入’
我有一个关于TPT继承+外键的问题。我正在开发一个支持多语言的web应用程序,包括翻译动态内容。下面是我的表格:
Language
=============
Id, Name
ProcessingAgent
====================
Id, some other fields
LocalizedProcessingAgent
=========================================================
LocalizedProcessingAgentId, Name, Description, LanguageId
正如您已经
当我按层次结构映射表时,我对EF6有一个问题。我有一个Person类,它有Employee和Manager子类。这两个类几乎相同,除了一个字段: DepartmentId (以及随后的链接组件部门)。
class Person {
public string Name {get; set;}
}
class Employee : Person {}
class Manager : Person {
public int DepartmentId {get; set;}
public Department Department {get; set;}
}
我已经为这类事情建立了必要的
我需要使用ASP.NET动态数据和实体框架为CRUD应用程序上的实体定制插入/更新方法。我找到了一个在上使用Linq To SQL的应用程序的解决方案。定制是为了添加一些业务逻辑。
我没有找到任何方法来重载EF或类似的东西,有什么建议吗?可以不使用触发器或修改模板页面中表单上的ItemInserted或ItemUpdated方法吗?
Thx
我正在使用EF6,并试图获取对象的整个结构。问题是我在使用继承。
假设我上过这门课。
DbContext
DbSet<A> A { get; set; }
示例类
public class A
{
public string Id { get; set; }
public IList<Base> Bases { get; set; }
}
public abstract class Base
{
public int Id { get; set; }
public string Name { get; set; }
}
public
我设计了一个EF6TPT数据库.我创建了一个类型A和B,后者继承了前者。我还没有完全理解的是如何查询只有A或B类型的对象?例如:
//When I need List<A>; works fine so far
return _db.ASet.Where(m => !(m is B)).ToList();
//When I need List<B>
_db.ASet.Where(m => !(m is A)).ToList();
第二行代码就是我的问题所在。我得到一个List<A>作为返回类型,但我需要List<B>。我尝试使用Ca
我有一个现有的数据库模式,它意味着使用一个联合表来自引用多到多的关系。根据Disciminator字段,Location表可以包含信息Country、City、Location、或Area。表RelatedLocation保存自引用关系。
我的域模型如下所示,其中位置类是抽象类,每个继承的类都与导航属性相关。
public abstract class Location
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Country : Location
{
我研究了几个可能的解决办法,但没有找到正确的解决办法。
我需要一个完整的集合,也就是说,我需要获取也是基本类型的类型。即ActionHistory类型以及从ActionHistory基类继承的所有其他类型。我的问题是,我正在获取所有实体,但ActionUpdate类型的实体没有填充ActionUpdateDetails集合。
我的问题是,我无法检索派生的ActionUpdateDetails ActionUpdate类中的数据。
模型中有三个类:
public class ActionHistory
{
public int Id {get;set;}
}
public class Acti
假设我有一个基类组件和两个派生类ComponentA和ComponentB,如下所示:
public class Component
{
public int ComponentID {get; set;}
public int ComponentType {get; set;}
// some other statements ...
}
然后
public class ComponentA : Component
{
// some statements ...
}
public class ComponentB : Component
{
// some
我正在尝试在EF中使用继承,并提出了以下(简化):
public abstract class Job
{
public int Id { get; set; }
public DateTime ScheduledTime { get; set; }
}
[Table("InstallationJobs")]
public class InstallationJob : Job
{
public PbnSite Site { get; set; }
}
我的dbcontext包含以下内容:
public DbSet<Job> Jobs {
我在域模型中使用基于Jimmy的文章的枚举类。然而,EF将类视为实体,并希望定义一个键。
有没有一种方法可以让EF像用标准C#枚举那样存储枚举类的值?
以下是我当前实现枚举类的方式:
public class ReservationStatus : Enumeration
{
public static readonly ReservationStatus Outstanding = new ReservationStatus(0, "Oustanding");
public static readonly ReservationStatus Paid = ne
我有一个接口,它定义了对数据的各种过滤(来自EF4的查询)。
接口方法:
IQueryable<T> filter<T>() where T : class;
现在,在该接口的具体实现中,我希望能够做到:
public IQueryable<T> filter<T>() {
if (...) return query.OfType<Foo>().Take(100);
if (...) return query.OfType<Bar>().Blah();
// etc
}
但这当然不起作用,因为函数签名需要的是T
我的项目中有以下实体(childs超过两个):
是否有任何方法仅从父表加载记录(没有任何额外的联接),当我使用TPT策略进行继承时使用EF?
通过下列守则:
var result = ctx.Parents.Find(5);
//or
var result = ctx.Parents.OfType<Parent>().Find(5);
EF生成一个巨大的SQL查询!(在我的真实模型中,我有两个以上的孩子)
在没有主键的情况下,从Server中的表中读取表时遇到问题。我已经定义了一个实体类,例如:
public class PerfData
{
public Int64 ActivityId { get; set; }
public Int64 Numbers{ get; set; }
}
和DbContext类,例如。
class MyDBContext
{
public DbSet<PerfData> {get; set;}
}
实体类型记录每个执行的ActivityId的数字,因此在Server表中没有定义主键。但是,当我使用以下代码检索数据时,EF抱怨
我在ef 5应用程序中使用ef pattren。create()方法存在于IDbSet中,在ef7的DbSet中不存在该方法。
Create()方法在EF5中的描述如下:
为该集合的类型创建实体的新实例。请注意,此实例未添加或附加到集合。如果将底层上下文配置为创建代理,并且实体类型满足创建代理的要求,则返回的实例将是一个代理。
代码示例:
public interface IRepository<T> where T : IDisposable {
T Create();
}
public class Repository<T> : IReposito
我有一个基类和两个派生类。
每个派生类都实现了与属性相同的类型--唯一的区别是属性名称。
遗憾的是,我对类设计->没有太大影响,它们是从wsdl文件中生成的。
然后,我在BaseType上有一个属性来封装公共属性。计划是在我的网络视图中使用这个属性等等。
我用著名的“水果例子”来演示这个问题:
public class FruitBase
{
public virtual int ID { get; set; }
//
// The plan is to use this property in mvc view
我试图使用EFCore2.0在两个类之间建立多到多个关系,只需在每个类中都有一个ICollection。
这似乎在EF 6 ()中工作得很好。为什么这在EF核心中不起作用?
public class ClassA {
[...]
public ICollection<ClassB> Bs { get; set; }
}
public class ClassB {
[...]
public ICollection<ClassA> As { get; set; }
}
我在EF核心()中找到了一种方法来完成这个任务,但是这看起来比它所需要的
我目前正在开发一个REST服务,它在我的CMS (Orchard)中创建页面和链接,这两个都需要放在我的菜单中。
这是我目前的解决方案:
public class ConfigurationDTO
{
public ShellSettings Tenant { get; set; }
public SetupContext SetupContext { get; set; }
public IList<IList<Page>> Pages { get; set; }
public IList<IList<Link>>
我刚刚开始关注LINQ查询。我看过,了解了查询的基本原理。但是,当EF6 (代码优先)基于基类将多个具体类合并到一个表中时,我找不到任何可以帮助我查询的东西。
我有一个基本抽象类声明如下:
public abstract class Product
{
// a whole bunch of fields, properties, and methods
}
然后一堆具体的类声明如下:
public class ProductOption : Product
{
public ProductOption()
{
// A bunch of stuff t
public class User
{
public string Id { get; private set; }
public string Name { get; private set;}
public bool IsActive{ get; private set; }
}
我正在构建一个.Net应用程序,使用MongoDB驱动程序连接到Mongo。一些已实现的实体具有一个IsActive字段--基本上是一个布尔值,如果该实体是活动的,则该字段设置为true;如果该实体已被删除,则为false。(软删除或逻辑删除(如果愿意)
我的目标
我正在为ASP.Net核心的一个网站构建一个菜单系统。让我们假设我有几个数据库表,一个用于Pages,一个用于Articles,尽管真正重要的是它们是不同的实体。它们每个都有一个Name和Permalink属性。
在我的菜单(我也想存储在数据库中)中,我想引用每个实体的Name和Permalink。我设计了一个简单的菜单类/模型结构如下:
文摘MenuItem
public abstract class MenuItem
{
[Key]
public int MenuItemId { get; set; }
public int MenuPosition { get;
我正在使用C#/.net 4.5和EF 6创建一个应用程序,并想知道我是否可以以某种方式完成以下操作:
我有两个基类,如:
public class BaseItem
{
[Key]
public int Id { get; set; }
public List<BaseRevision> Revisions { get; set; }
}
public class BaseRevision
{
[Key]
public int Id { get; set; }
public BaseItem Item { get; set;
我正在将一个较旧的实体框架应用程序移植到EF Core。在旧的应用程序中,可以自由地使用审计信息:
public class Audit
{
public string CreatedBy { get; set; }
public DateTime? CreatedDt { get; set; }
public string ModifiedBy { get; set; }
public DateTime? ModifiedDt { get; set; }
}
这个类嵌入在DbContext中的许多Entitites中,如下所示:
public class Or