NBear中如何建立一个单向组合关系的外键关联,而且对应实体的主键为String类型?
(使用NBear3.7.2的ORM框架,如需源码请联系hillfree#gmail.com)
问题描述:
涉及两个业务对象:User(用户)和UserType(用户类型);UserType作为系统的基础信息,可能会增加,重命名,甚至删除。
User接口中包含UserType的对象作为一个成员。与Tutorial中的一对一关联不同。UserType不需要知道User的存在,即User和UserType是单向的组合关联。
User和UserType的接口定义如表1,表2:注:一些不必要的字段被省略
到此为止,一切都运行的很好。单向组合关联,级联更新等。
------- 问题:当外键需要关联到UserType的Code(编码)字段时出错-------
因为用ID作外键,在多处部署的基础信息维护时,用户觉得不够方便,希望能用Code作为外键关联,这样用户只要在UserType中新建对应编码值的对象即可。
因此,把User接口定义修改为表3的样子,但是gateway.cs报错,因为在gateway中要把一个Guid类型赋值给Code字段。
考虑到可能是主键关系的问题,把UserType的ID字段去掉,将Code作为主键,即修改为表4的样子,可是问题依旧。
因此,疑问如下:
如何建立一个单向组合关系的外键关联,而且对应实体的主键为String类型?
附件中带有工程源码,供参考,谢谢。
表1:User接口定义
public interface User : Entity
{
[PrimaryKey]
Guid ID
{
get;
set;
}
string Name
{
get;
set;
}
[FkQuery("ID", Contained=true, LazyLoad=true)]
UserType Type
{
get;
set;
}
}
表2:UserType接口定义
public interface UserType : Entity
{
[PrimaryKey]
Guid ID // 主键
{
get;
set;
}
string Code // 类型编码
{
get;
set;
}
string Name // 类型名称
{
get;
set;
}
}
表3:修改后的User接口定义
public interface User : Entity
{
[PrimaryKey]
Guid ID
{
get;
set;
}
string Name
{
get;
set;
}
[FkQuery("Code", Contained=true, LazyLoad=true)] // 仅此地方将ID改为Code
UserType Type
{
get;
set;
}
}
表4:修改后UserType接口定义
public interface UserType : Entity
{
[PrimaryKey]
string Code // 类型编码
{
get;
set;
}
string Name // 类型名称
{
get;
set;
}
}
相关推荐
Nbear ORM
Nbear ORM 开源框架
C#三层架构
C#三层架构教程包含示例代码,非常简单和详细。
基于.NET平台的分层架构实战
综述 2.系统需求分析及数据库设计 3.架构概要设计 4.实体类的实现 5.接口的设计与实现 6.依赖注入及IoC的设计与实现
无人机固定翼无人机简化燃油燃烧仿真的模拟模型(Matlab代码实现)
内容概要:本文提出了一种面向固定翼无人机的简化燃油燃烧仿真模拟模型,该模型基于Matlab平台实现,旨在对无人机在飞行过程中的燃油消耗行为进行高效、准确的模拟与分析。模型在保证工程实用性的前提下,对复杂的燃烧化学反应和热力学过程进行了合理简化,重点保留了燃料消耗速率、发动机效率与飞行状态(如高度、速度、迎角等)之间的动态耦合关系,构建了一个轻量化且具备良好泛化能力的燃油经济性评估工具。该模型可用于不同飞行剖面下的续航能力预测、任务航程规划以及能源管理策略的初步设计与验证,为无人机系统级仿真与优化提供关键支撑。; 适合人群:具备Matlab编程与仿真实践能力,从事固定翼无人机总体设计、飞行任务规划、航空动力系统或绿色航空技术研究的科研人员与工程师。; 使用场景及目标:①支撑固定翼无人机在多种工况(巡航、爬升、机动等)下的燃油消耗预测与航程评估;②服务于无人机能源管理系统的概念设计与性能优化,提升任务可靠性和飞行经济性; 阅读建议:建议读者结合Matlab代码深入理解模型结构,通过调整飞行参数(空速、海拔、推力设定等)开展仿真实验,观察燃油流量与累积消耗的变化趋势,进而掌握模型的响应特性与适用边界。
风光储协同并网发电系统仿真(Simulink仿真实现)
内容概要:本文系统介绍了基于Simulink的风光储协同并网发电系统的仿真研究,聚焦风能、光伏与储能系统的多能互补协调控制策略,涵盖并网逆变器控制、虚拟同步发电机(VSG)、下垂控制、模型预测控制(MPC)、中点电位平衡、孤岛检测、低电压穿越(LVRT)等多项核心技术的建模与仿真实现。文档列举了多个典型应用场景,如风光储交直流微电网一体化控制、PEM电解槽制氢耦合系统、VSG预同步切换控制等,并强调结合参考文献与仿真模型进行SCI级别论文的复现,突出其科研指导性与工程实用性。资源包还提供详尽的设计文档、建模报告、Mathcad计算书及配套程序,支持深入理解与二次开发; 适合人群:面向具备电力系统、新能源发电、自动控制等相关专业知识背景的研究生、科研人员及工程技术人员,尤其适用于从事MATLAB/Simulink仿真实践、需完成高水平学术论文或参与实际能源系统设计的研发人员; 使用场景及目标:①用于风光储多能互补系统的并网特性分析、动态响应评估与先进控制策略验证;②支撑SCI论文复现、科研项目攻关与创新方法提出,提升科研竞争力;③服务于高校毕业设计、课程课题研究及实际工程项目中的系统优化、性能测试与方案论证; 阅读建议:建议读者结合提供的参考文献与仿真模型同步操作,优先掌握VSG、MPC、双闭环控制等核心模块的建模逻辑与参数整定方法,注重理论推导与仿真实践相结合,循序渐进地从单一单元扩展至复杂系统集成仿真,全面提升建模能力与科研素养。


