标签: automapping

为长文本字符串覆盖流畅的NHibernate nvarchar(MAX)不是nvarchar(255)

当你在流畅的NHibernate中设置字符串值时,它会将数据库值设置为Nvarchar(255),我需要存储相当多的基于用户输入的长字符串,而255是不切实际的.

只是为了添加这个是自动播放器的问题,因为我使用流畅的NHibernate来构建数据库.

c# nhibernate fluent-nhibernate automapping sharp-architecture

40
推荐指数
3
解决办法
2万
查看次数

如何解决"批量更新从更新返回意外行数;实际行数:0;预期:1"问题?

每当我尝试创建一个特定的实体时获得这个......只是想知道我应该如何找出原因.

我正在使用Fluent NHibernate自动化,所以也许我没有适当地设置约定和/或需要覆盖一个或多个映射文件中的某些东西.我已经通过网络上关于这个问题的一些帖子,并且很难弄清楚为什么它会发生在我的案例中.

我正在保存的对象非常简单.它是一个引用"公司"实体并具有"地址"实体集合的"人"对象.UPDATES在已存在于数据库中的现有Person对象上正常工作.

建议?

谢谢-wg

nhibernate fluent-nhibernate automapping

29
推荐指数
2
解决办法
6万
查看次数

获取"无法将PersistentGenericSet强制转换为ISet"错误

我收到此错误:

无法转换'NHibernate.Collection.Generic.PersistentGenericSet 1[IocWinFormTestEntities.People]' to type 'System.Collections.Generic.ISet1 [IocWinFormTestEntities.People]' 类型的对象.

实体:

public class Event 
{
    public Event()
    {
        this.People = new HashSet<People>();
    }
    public virtual Guid Id { get; private set; }

    public virtual ISet<People> People { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

地图覆盖类:

public class EventMapOverride : IAutoMappingOverride<Event>
{
    public void Override(AutoMapping<Event> mapping)
    {
        mapping.HasMany(c => c.People)
            .AsSet()
            .Cascade.AllDeleteOrphan();
    }
}
Run Code Online (Sandbox Code Playgroud)

从流畅的自动播放器生成的hbm:

<set cascade="all-delete-orphan" name="People">
    <key>
        <column name="Event_id" />
    </key>
    <one-to-many class="IocWinFormTestEntities.People, IocWinFormTestEntities, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</set>
Run Code Online (Sandbox Code Playgroud)

怎么了?

c# nhibernate automapping

27
推荐指数
2
解决办法
8836
查看次数

使用Fluent NHibernate/Nhibernate和Automapping进行预先加载

我有一个要求加载一个名为Node的复杂对象...它不是那么复杂...它看起来如下: -

一个节点有一个参考的EntityType具有一对多物业这反过来有一对多PorpertyListValue

public class Node
{
    public virtual int Id
    {
        get;
        set;
    }

    public virtual string Name
    {
        get;
        set;
    }

    public virtual EntityType Etype
    {
        get;
        set;
    }

}


public class EntityType
{
    public virtual int Id
    {
        get;
        set;
    }

    public virtual string Name
    {
        get;
        set;
    }

    public virtual IList<Property> Properties
    {
        get;
        protected set;
    }

    public EntityType()
    {
        Properties = new …
Run Code Online (Sandbox Code Playgroud)

nhibernate fluent-nhibernate automapping eager-loading

23
推荐指数
3
解决办法
2万
查看次数

使用流畅的NHibernate AutoMapping保存级联

如何使用具有Fluent NHibernate的AutoMap持久性模型"打开"级联保存?

如:

我救人,手臂也应该保存.目前我明白了

"对象引用未保存的瞬态实例 - 在刷新之前保存瞬态实例"

public class Person : DomainEntity
{
  public virtual Arm LeftArm { get; set; }
}

public class Arm : DomainEntity
{
  public virtual int Size { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我发现了一篇关于这个主题的文章,但似乎已经过时了.

fluent-nhibernate automapping

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

流畅的NHIbernate自动化List <string>?

流利的NHibernate不喜欢这样,抛出一个错误:

{"关联引用未映射的类:System.String"}

好的,我明白为什么这会导致问题 - 但最好的解决办法是什么?

我真的不希望它在单个字段中存储分隔符的字符串列表,如果我的列表包含许多字符串,这将变得很难看.

由于显而易见的原因,我也不太想要一个表'字符串'.

我想我可以通过将我的List<string>内部包裹在一个类中来解决这个问题,但这感觉有点重量级.我开始认为它是最好的解决方案.

让Fluent NHibernate处理这个问题的最佳方法是什么?

我完全希望这些值存储在另一个表中.我想也许我可能已经能够设置一些指示NHibernate的自动化约定'如果你看到class X包含的那个List<*some primitive type*>,那么继续并自动创建一个映射到这个集合的引用表.

将一个集合中的每个集合包装起来感觉有点沉重.如果这是最好的解决方案,那么就这样吧.

nhibernate fluent-nhibernate automapping

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

C# - 使用泛型的IDataReader到Object映射

如何使用泛型将DataReader对象映射到类对象?

例如,我需要执行以下操作:

public class Mapper<T>
    {
        public static List<T> MapObject(IDataReader dr)
        {
            List<T> objects = new List<T>();

            while (dr.Read())
            {
                //Mapping goes here...
            }

            return objects;
        }
    }
Run Code Online (Sandbox Code Playgroud)

后来我需要调用这个类方法,如下所示:

IDataReder dataReader = DBUtil.Fetchdata("SELECT * FROM Book");

List<Book> bookList = Mapper<Book>.MapObject(dataReder);

foreach (Book b in bookList)
{
     Console.WriteLine(b.ID + ", " + b.BookName);
}
Run Code Online (Sandbox Code Playgroud)

注意,Mapper - 类应该能够映射由T表示的任何类型的对象.

c# mapping ado.net automapping

10
推荐指数
1
解决办法
9464
查看次数

从现有DB和Fluent NHibernate自动映射生成C#实体

我正在使用一个使用一些非常难看的约定的现有数据库.我想使用NHibernate,我想我可以使用Fluent NHibernate的自动映射约定修复所有这些丑陋的数据库约定.我想避免手工编写所有实体类.(这是LINQ to SQL和SubSonic的吸引力)

是否可以根据我的数据库模式和Fluent NHibernate中指定的映射生成我的C#实体?

旁白:你知道NHibernate的设计师吗?

c# nhibernate code-generation fluent-nhibernate automapping

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

流畅的NHibernate JoinedSubClass已经过时了

我不知道什么.我坐在这里有一个解决方案我有1个超类,有2个子类,我现在使用JoinedSubClass映射它,但我得知这个方法已经过时,并说我应该使用ClassMap和SubClassMap,但如果我这样做AutoMapping不起作用,我不希望这样.这有什么解决方法吗?

这是层次结构:

public class Tag : Entity
{

public virtual string Name {get;set;}
public virtual User User {get;set;}

}

public class RespondentTag : Tag
{
    public virtual IList<Respondent> Respondents {get;set;}
}


public class ArchiveTag : Tag
{
    public virtual IList<Survey> Surveys {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

正如您可能想到的那样,我希望这是一个每个层次结构的表 - 映射与子类的列表是多对多.就像表'Tag',然后是Tag_Respondent和Tag_Archive(用于多对多关系).

这是我目前正在使用的映射:

public class TagMap : IAutoMappingOverride<Tag>
{
  public void Override(AutoMapping<Tag> mapping)
  { 
     //This is obsolete
     mapping.JoinedSubClass("RespondentTagId", RespondentTagMap.AsJoinedSubClass());
     mapping.JoinedSubClass("ArchiveTagId", ArchiveTagMap.AsJoinedSubClass());

  }
}

public class RespondentTagMap
{
    public static Action<JoinedSubClassPart<RespondentTag>> AsJoinedSubClass()
    {
     return part =>

        part.HasManyToMany(x …
Run Code Online (Sandbox Code Playgroud)

.net nhibernate fluent-nhibernate automapping joined-subclass

10
推荐指数
1
解决办法
724
查看次数

使用HasMany通过自动映射映射相同类型的多个属性

我试图在OneToMany关联上映射相同类型的属性.我试图与描述区分,但有点卡在这里.

public class User
{
    public virtual int UserId { get; set; }
    public virtual string UserName { get; set; }

    [Description("From")]
    public virtual IList<Message> FromMessageList { get; set; }

    [Description("To")]
    public virtual IList<Message> ToMessageList { get; set; }   
}

public class Message
{
    public virtual int MessageId { get; set; }
    public virtual string Text { get; set; }

    [Description("From")]
    public virtual User FromUser { get; set; }

    [Description("To")]
    public virtual User ToUser { get; set; }

}

    public …
Run Code Online (Sandbox Code Playgroud)

fluent-nhibernate automapping

10
推荐指数
1
解决办法
389
查看次数