小编Lad*_*nka的帖子

实体框架代码首先对现有表进行多对多设置

我有以下表Essence,EssenseSetEssense2EssenceSet

Essense2EssenceSet 是创建M:M关系的链接表.

虽然在EF代码中,我一直无法使M:M关系正常工作.

这是我的代码:

[Table("Essence", Schema = "Com")]
    public class Essence
    {
        public int EssenceID { get; set; }
        public string Name { get; set; }
        public int EssenceTypeID { get; set; }
        public string DescLong { get; set; }
        public string DescShort { get; set; }
        public virtual ICollection<EssenceSet> EssenceSets { get; set; }
        public virtual EssenceType EssenceType { get; set; }
    }

    [Table("EssenceSet", Schema = "Com")]
    public class EssenceSet
    {
        public int …
Run Code Online (Sandbox Code Playgroud)

mapping many-to-many entity-framework code-first entity-framework-4.1

13
推荐指数
1
解决办法
1万
查看次数

EF 4.0 - 使用私有字段映射到只读属性

是否可以使用EF 4.0映射以下POCO类?

public class MyClass
{
  private string _myData;

  public MyClass() 
  { }

  public MyClass(string myData)
  {
    _myData = myData;
  }

  public string MyData
  {
    get
    {
      return _myData;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

在NHibernate中我认为在映射中使用Access属性是可能的:

<class name="MyClass" table="MyTable">
  <property name="MyData" access="field.camelcase-underscore" column="MyCol" type="string" length="50" />
</class>
Run Code Online (Sandbox Code Playgroud)

我想知道EF 4.0中是否有一些Access等价物?目前,我能够映射类只如果我添加受保护的setter到MyData的属性:

  public string MyData
  {
    get
    {
      return _myData;
    }
    protected set
    {
      _myData = value;
    }
  }
Run Code Online (Sandbox Code Playgroud)

它可以工作,但对于遗留类,它意味着更新所有没有setter的属性.

编辑:

我已经更新了最后一个代码示例,因为它也不适用于私有setter.塞特必须至少受到保护.如果setter是私有的,或者在抛出异常后不存在:

System.InvalidOperationException:映射和元数​​据信息无法进行的EntityType"MyNamespace.MyClass"中找到.

.net mapping entity-framework entity-framework-4

12
推荐指数
2
解决办法
3948
查看次数

WSDL优先方法:如何为wsdl:port和wsdl:binding指定不同的名称?

我遵循WSDL优先(由我们的客户提供)方法来开发WCF服务,但是从我的wcf服务生成的WSDL与我们的客户提供给我的WSDL略有不同,并且由于这种不匹配,客户端在调用时遇到了困难.我的服务.

客户提供wsdl:

<wsdl:service name='CheckoutService'> <wsdl:port binding='tns:CheckoutBinding' name='CheckoutServicePort'> <soap:address location='place holder to service uri' /> </wsdl:port> </wsdl:service>


从wcf服务生成的WSDL:

<wsdl:service name="CheckoutService"> <wsdl:port binding="tns:CheckoutBinding" name="CheckoutBinging"> <soap:address location="place holder to service uri" /> </wsdl:port> </wsdl:service>

而且,我的服务设置如下:

<endpoint name="CheckoutBinding" address="" binding="basicHttpBinding" bindingName="CheckoutServicePort" bindingConfiguration="basicHttpBinding" bindingNamespace="<<namespace>>" contract="<<contractname>>" />

我已经使用WSCF.Blue从客户端提供的wsdl生成服务器存根代码,并在生成的代码中进行了微小的更改,以发出与客户端提供的WSDL完全相同的WSDL,但我不知道要在客户端提供什么更改.配置文件或生成的代码,以获得与客户端提供的wsdl文件相同的"wsdl:port/@ name".

根据此URL,serviceendpoint名称属性将映射到wsdl:port/@ name和wsdl:binding/@ name.基于此,我的配置文件中的endpoint/@ name属性值映射到wsdl:port/@ name和wsdl:binding/@ name但我希望将不同的名称映射到wsdl:port/@ name和wsdl:binding/@name属性.

请帮助我实现这一目标.

wcf wsdl

12
推荐指数
1
解决办法
1万
查看次数

实体框架代码优先 - 更改表列整理

我正在使用Entity Framework CTP5和Code First.我需要更改SQL Server中特定列的排序规则.我相信默认排序规则是SQL_Latin1_General_CP1_CI_AS,但我需要将此列匹配更改为SQL_Latin1_General_CP1_CS_AS(区分大小写).

有没有办法在Code First中使用ModelBuilder来更改特定的列排序规则?

BarDev

sql-server entity-framework entity-framework-4 ef-code-first entity-framework-ctp5

12
推荐指数
1
解决办法
6879
查看次数

实体框架4.1代码优先将KeyAttribute作为非标识列

我遇到了代码优先模型的问题.数据现在在数据库中,所以我不能使用DropCreateDatabaseIfModelChanges类重新种子数据库,但我需要更改一个表,以便bigint列不是IDENTITY(1,1).我已经成功使用SSMS,但现在我的EF代码说它已经过时了.这是有问题的表的代码:

public class Vote {
    [Required, Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
    public long FacebookUserId { get; set; }
    [Required]
    public Entity Entity { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

所以我改变了我的表模式和我的模型(我认为它是它的反映,但我显然是错的),但EF仍然说我的模型已经过时了,我无法重新播种数据库让它"完美".

任何帮助将非常感激.

谢谢,

本杰明

entity-framework entity-framework-4.1 azure-sql-database

12
推荐指数
2
解决办法
1万
查看次数

如何使用结构注释在模型第一种方法中将SQL类型设置为Date

是否可以通过实体框架设计器将类型设置为日期(非日期时间)?

我环顾四周,我发现的唯一答案是一年前来自MSDN论坛的帖子......

http://social.msdn.microsoft.com/Forums/en/adodotnetentityframework/thread/28e45675-f64b-41f0-9f36-03b67cdf2e1b

我在这里很新,我不太明白他们谈论结构注释的说明......

我可以通过生成的SQL脚本并更改每一行,但我宁愿不这样做......

sql entity entity-framework sql-server-2008 entity-framework-4

12
推荐指数
1
解决办法
5358
查看次数

如何在使用Entity Framework时序列化ICollection <T>类型的属性

我有一个课程,如下所示

public class Survey
    {
        public Survey()
        {
            SurveyResponses=new List<SurveyResponse>();
        }

        [Key]
        public Guid SurveyId { get; set; }
        public string SurveyName { get; set; }
        public string SurveyDescription { get; set; }
        public virtual ICollection<Question> Questions { get; set; }
        public virtual ICollection<SurveyResponse> SurveyResponses { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

上面的代码给了我以下异常

无法序列化'System.Collections.Generic.ICollection类型的成员'SurveyGenerator.Survey.Questions'

当我将ICollection转换为List时,它正确地序列化

由于它是实体框架的POCO,我无法将ICollection转换为List

serialization entity-framework deserialization

12
推荐指数
1
解决办法
1万
查看次数

MySQL实体框架错误 - 在配置中找不到指定的商店提供程序,或者无效

我在C#中编写了一个程序集来执行MySQL数据库的所有数据访问.我在C#winform桌面应用程序中成功使用了程序集(已编译的dll).但它仅适用于安装了"MySQL Connector Net 6.4.4"的PC.

我试图在我的asp.net网站项目中使用相同的程序集.首先我得到一个关于缺少连接字符串的错误.通过将MySQL连接字符串添加到web.config文件可以轻松解决这个问题.我现在得到这个错误(下面列出的堆栈跟踪),我已经尝试将以下dll添加到我的bin文件夹来解决它但它不起作用.

MySql.Data.dll
MySql.Data.Entity.dll
MySql.Web.dll

System.Web.HttpUnhandledException (0x80004005): Exception of type 'System.Web.HttpUnhandledException' was thrown. 
---> System.ArgumentException: The specified store provider cannot be found in the configuration, or is not valid. 
---> System.ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed. at System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName) at System.Data.EntityClient.EntityConnection.GetFactory(String providerString) 
--- End of inner exception stack trace 
Run Code Online (Sandbox Code Playgroud)

c# mysql entity-framework

12
推荐指数
2
解决办法
4万
查看次数

在ReSharper中是否有任何记录来查找为什么测试没有结果?

我们有非常复杂的派生类结构,它们构成了我们的系统/集成测试.现在我开始TestFixture在我的一个测试类中使用参数化NUnit ,而ReSharper 6.1.1真的不喜欢它.

如果我直接从单元测试会话中运行测试,则测试夹具始终标记为不确定.如果我从代码中运行测试,我会得到相同的结果,但是如果我在测试夹具上展开Resharper的图标并选择仅运行的单个特定测试用例,那么很少会在夹具内运行所有测试,但在大多数情况下它将再次标记夹具是不确定的.

我的参数化夹具在NUnit测试运行器中没有任何问题.

我还创建了一些具有单级继承的示例参数化夹具,它可以工作,因此问题出现在我们整个"框架"的系统测试中.

有没有办法调查为什么夹具被标记为不确定并被排除在试运行之外?

.net resharper nunit visual-studio-2010

12
推荐指数
1
解决办法
2345
查看次数

实体框架4.1 RC:Code First EntityTypeConfiguration继承问题

我正在尝试使用常见的EntityTypeConfiguration类来为我的所有实体配置主键,以便每个派生的配置类不会重复.我的所有实体都实现了一个公共接口IEntity(它表示每个实体必须具有int类型的Id属性).

我的配置基类如下所示:

public class EntityConfiguration<TEntity> : EntityTypeConfiguration<TEntity>

    where TEntity : class , IEntity {

    public EntityConfiguration() {

        HasKey( e => e.Id );

        Property( e => e.Id ).HasDatabaseGeneratedOption( DatabaseGeneratedOption.Identity );

    }

}
Run Code Online (Sandbox Code Playgroud)

然后每个实体都有自己的特定配置类,扩展这个类,如下所示:

public class CustomerConfiguration : EntityConfiguration<Customer> {

    public CustomerConfiguration() : base() {

        // Entity specific configuration here

    }

}
Run Code Online (Sandbox Code Playgroud)

它编译得很好,但我遇到的问题是,在运行时,当EF 4.1 RC尝试创建模型时,我会得到以下异常:

System.InvalidOperationException未处理Message =关键组件"Id"不是"Customer"类型的声明属性.验证它是否未从模型中明确排除,并且它是有效的原始属性.来源=的EntityFramework

如果我将CustomerConfiguration类更改为从EntityTypeConfiguration <Customer>扩展并重复主键配置,那么它工作正常,但我失去了共享通用配置的能力(DRY主体是动机).

  • 我在这里做错了吗?
  • 是否有另一种方法可以在实体之间共享通用配置?

这里参考的是其他涉及的类:

public interface IEntity {

    int Id { get; set; }

}

public class Customer : IEntity {

    public virtual int …
Run Code Online (Sandbox Code Playgroud)

c# ef-code-first entity-framework-4.1

11
推荐指数
2
解决办法
1万
查看次数