Entity framework 在Umbraco中使用实体框架或任何其他ORM

Entity framework 在Umbraco中使用实体框架或任何其他ORM,entity-framework,orm,umbraco,Entity Framework,Orm,Umbraco,我试图找到一些文档/文章,其中有人在umbraco中集成了实体框架或任何其他ORM工具,而不是使用良好的基于文本的SQL查询 到目前为止,如果我想查询umbraco数据库,我已经写了以下内容: ISqlHelper SqlHelper = DataLayerHelper.CreateSqlHelper(umbraco.GlobalSettings.DbDSN) SqlHelper.ExecuteNonQuery(@"insert into Table(id,ColumnName)

我试图找到一些文档/文章,其中有人在umbraco中集成了实体框架或任何其他ORM工具,而不是使用良好的基于文本的SQL查询

到目前为止,如果我想查询umbraco数据库,我已经写了以下内容:

ISqlHelper SqlHelper = DataLayerHelper.CreateSqlHelper(umbraco.GlobalSettings.DbDSN)

    SqlHelper.ExecuteNonQuery(@"insert into Table(id,ColumnName)                        values(@id,@ColumnName)",
    SqlHelper.CreateParameter("@Id", -1),                    SqlHelper.CreateParameter("@ColumnName", foobar),
这很好,别误会我的意思,但我认为使用某种ORM工具会更好


关于如何使用ORM工具来连接现有的Umbraco表和新表,有什么想法/想法吗?

我在我的Umbraco应用程序中广泛使用EF,它工作得很好,但不是为了操纵核心Umbraco表;我使用它来操作添加到数据库中的自定义表

我甚至不确定umbraco表是否会在默认情况下设置所有正确的外键和/或索引,以优化EF的使用并使其值得使用


如果您只需要一个包装器来让核心表更容易访问,请考虑使用轻量级包,如Dapp.

< P>我在EMPLACOP应用程序中广泛使用EF,它工作得很好,但不操作核心UMPLAO表;我使用它来操作添加到数据库中的自定义表

我甚至不确定umbraco表是否会在默认情况下设置所有正确的外键和/或索引,以优化EF的使用并使其值得使用


如果您只需要一个包装器来让核心表更容易访问,请考虑使用轻量级包,如Dapper.

。我在很多UMPLACOO项目中使用了LINQtoSQL,但在过去的一年里,它改为使用PATAPOCO。非常轻量级,易于学习、实现和使用。它也很快

我发现EF和linqtosql对Subversion不是特别友好,当两个或多个开发人员在使用相同的数据模式时会导致冲突

我还发现使用DI更简单,因为没有上下文要考虑。在我看来,它与Umbraco 4.10+项目的MVC实现非常契合

更新:


转到使用PetaPoco的Umbraco v6+之后,我经常发现我甚至不需要安装ORM,因为我可以使用Umbraco自己的数据库对象,因为正如我所说,实际上是PetaPoco。然而,当我需要更多的咕噜声时,我会选择NHibernate或EF,但这些情况很少,如果可能的话,我仍然会很乐意使用Petapoco或Npco。

我在很多翁布拉科项目中使用了Linq to SQL,但在去年,我转而使用Petapoco。非常轻量级,易于学习、实现和使用。它也很快

我发现EF和linqtosql对Subversion不是特别友好,当两个或多个开发人员在使用相同的数据模式时会导致冲突

我还发现使用DI更简单,因为没有上下文要考虑。在我看来,它与Umbraco 4.10+项目的MVC实现非常契合

更新:


转到使用PetaPoco的Umbraco v6+之后,我经常发现我甚至不需要安装ORM,因为我可以使用Umbraco自己的数据库对象,因为正如我所说,实际上是PetaPoco。然而,当我需要更多咕噜声时,我会选择NHibernate或EF,但这些情况很少,如果可能的话,我会很乐意使用Petapoco或NPoco。

这是我的两分钱:

EF或任何您可以采用和选择的ORM映射器,以满足您在umbraco生态系统中的需求。这样做的好处是,您可以采用自己的查询编写模式来查询Umbraco DB。它将完美地工作

一旦您采用EF,您将有如下查询

var q = from p in cmsContentType.Include("umbracoNode")
同样地。。您还可以使用一些类包装器来保存EDMX中存在的umbraco表的实体

但是,如果您希望在同一数据库中有一些自定义表以及Umbraco表,那么我建议您创建两个EDMX文件-1个用于Umbraco表,2个用于自定义表。这样可以减少一个EDMX文件的负担,并获得性能

要回答你的问题。。。尽管没有可用于执行此操作的文档。。你可以想象你有很多桌子,把它们放在EDMX上,然后开始使用它

下面附上的是我的数据库中的图片,它是香草味的umbraco


这是我的两分钱

EF或任何您可以采用和选择的ORM映射器,以满足您在umbraco生态系统中的需求。这样做的好处是,您可以采用自己的查询编写模式来查询Umbraco DB。它将完美地工作

一旦您采用EF,您将有如下查询

var q = from p in cmsContentType.Include("umbracoNode")
同样地。。您还可以使用一些类包装器来保存EDMX中存在的umbraco表的实体

但是,如果您希望在同一个数据库中有一些自定义表以及Umbraco表,那么我建议您这样做 创建两个EDMX文件-1个用于Umbraco表格,2个用于自定义表格。这样可以减少一个EDMX文件的负担,并获得性能

要回答你的问题。。。尽管没有可用于执行此操作的文档。。你可以想象你有很多桌子,把它们放在EDMX上,然后开始使用它

下面附上的是我的数据库中的图片,它是香草味的umbraco


只有在使用edmx时,“源代码管理”的一部分可能会出现问题。我说的是POCO对象,它在任何源代码控制系统中都非常有效。当然,问题的一部分在于,在svn中,像TFS这样的独占签出并不是直截了当的:只有在使用edmx时,“源代码管理”部分才可能成为问题。我说的是POCO对象,它在任何源代码控制系统中都非常有效。当然,问题的一部分在于,在svn中,像TFS这样的独家结账并不是很直接:我不是edmx tbh的忠实粉丝。我更喜欢POCO,它给我更大的灵活性。无论哪种方式,你都不会遇到@e-j-brennan描述的如下问题吗?我是e-j-brennan@的边缘粉丝,但我认为翁布拉科的DB模式定义得很好。。如果您想查看您的自我,请安装一个新的,并查看SQL server中的数据库关系图,它们具有良好的FK-PK关系。照我说的。所以你也不会对EDMS有任何问题。我不是EDMXTBH的超级粉丝。我更喜欢POCO,它给我更大的灵活性。无论哪种方式,你都不会遇到@e-j-brennan描述的如下问题吗?我是e-j-brennan@的边缘粉丝,但我认为翁布拉科的DB模式定义得很好。。如果您想查看您的自我,请安装一个新的,并查看SQL server中的数据库关系图,它们具有良好的FK-PK关系。照我说的。因此,您也不会对EDMS有任何问题。