很抱歉,因为这个问题特定于我的问题.
在学习反思的同时,我在一周内完成了一个迷你SQL ORM,然后在使用它一周时进行了一些小调整.由于它只有很少的工作量,它实际上只与sqlite兼容.到目前为止我没有遇到代码问题,但我想把它移植到支持TSQL或MySql的东西.
示例代码在这里已经过时但在我的类中具有最常用的功能.什么库我可以用最小的痛苦来移植代码.请注意,它必须支持外键.
Lac*_*che 10
我的建议是查看一些ORM的教程,然后选择最适合你的方法.
NHibernate 参考文档建议30分钟来启动和运行介绍章节中的示例.
我自己的ORM短名单将是:
一些相关问题:
NHibernate示例
// create and save an entity
var u = new User{ Name="foo", SignupDate=DateTime.Now };
session.Save( u );
// fetch and update entity, saving a related entity
var post = session.Get<Post>( 42 );
post.Tags["foo"].Count++;
session.Save( post );
// save a related item for an entity
post.Tags.Add( new Tag("Name"));
session.Save( post );
Run Code Online (Sandbox Code Playgroud)
一些示例映射和类:
public class User
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual DateTime SignupDate { get; set; }
}
public class Post
{
public virtual int Id { get; set; }
public virtual User User { get; set; }
public virtual string Title { get; set; }
public virtual string Body { get; set; }
public virtual IList<Tag> Tags { get; set; }
}
public class Tag
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual string Count { get; set; }
}
<class name="User" table="user">
<id name="Id">
<generator class="native" />
</id>
<property name="Name" />
<property name="SignupDate" />
</class>
<class name="Post" table="post">
<id name="Id">
<generator class="native" />
</id>
<property name="Title" />
<property name="Body" type="StringCLob" /> <!-- ntext -->
<many-to-one name="User" />
<bag name="Tags" table="post_tag" cascade="save-update">
<key column="postid" />
<many-to-many class="Tag" column="tagid" />
</bag>
</class>
<class name="Tag" table="tag">
<id name="Id">
<generator class="native" />
</id>
<property name="Name" />
<property name="Count" />
</class>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
590 次 |
| 最近记录: |