小编Ste*_*ter的帖子

流畅的NHibernate强制在外键引用上不可为空

刚刚尝试了一些流畅的NHibernate AutoMap惯例,并遇到了一些我无法弄清楚的问题.我假设我只是没有找到正确的位置...基本上尝试在一对多关系的"多"方面强制执行NOT-NULL.似乎,使用自动化,它总是使父属性Id在数据库中可以为空.

我在StackOverFlow上做了一些搜索,发现了类似的问题,但是没有任何与AutoMapping和Conventions相关的内容(除非我错过了).

快速举例......

public class Group    // One Group
{
    public Group() { this.Jobs = new List<Job>(); }
    public virtual Guid Id { get; set; }
    public virtual string Name { get; set; }
    public virtual IList<Job> Jobs { get; protected set; }
}

public class Job    // Has many Jobs
{
    public virtual Guid Id { get; set; }
    public virtual string Name { get; set; }

    // Trying to make this field not-nullable in the database.
    public …
Run Code Online (Sandbox Code Playgroud)

c# fluent-nhibernate automapping

5
推荐指数
1
解决办法
4825
查看次数

使用LINQ查询/子查询多个方法(Quartz.NET示例用于组,作业和触发器)

绝对是一个LINQ新手,但对SQL和C#非常有经验,并想知道这在LINQ中是否可行.如果是这样,我可以在其他地方使用它,但我认为这将是一个很好的起点(并有助于简化/清理一些代码).这可能更通用,但我认为这可能是一个很好的现实生活中的例子,可以帮助解释.

快速背景:我正在做一个个人学习项目,构建一个调度程序,学习Spring.NET/DI,Fluent NHibernate,Quartz.NET,并尝试用TDD来完成我的专长.到目前为止已经学到了一吨.

Quartz.NET IScheduler对象具有这些属性(1)/方法(2)(假设为公共)...

string[] JobGroupNames { get; }
string[] GetJobNames(string groupName)
Trigger[] GetTriggersOfJob(string jobName, string groupName)
Run Code Online (Sandbox Code Playgroud)

假设触发器定义只是......

class Trigger
{  
    string Name { get; }
}  
Run Code Online (Sandbox Code Playgroud)

我有一个类我正在尝试获取一个列表,其中包含如下构造函数(因为它一旦创建就不可变)...

class QuartzJob
{
    public QuartzJob(Guid groupId, Guid jobId, IEnumerable<string> triggerNames)
}
Run Code Online (Sandbox Code Playgroud)

目前这就是我处理它的方式......

public IEnumerable<QuartzJob> GetQuartzInfo(IScheduler scheduler)
{
    List<QuartzJob> list = new List<QuartzJob>();

    foreach (string grp in scheduler.JobGroupNames)
    {
        foreach (string job in scheduler.GetJobNames(grp))
        {
            var triggerNames = scheduler
                .GetTriggersOfJob(job, grp)
                .ToList()
                .ConvertAll(t => t.Name);

            var qj = new QuartzJob(new Guid(grp), new …
Run Code Online (Sandbox Code Playgroud)

c# linq subquery quartz-scheduler quartz.net

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