标签: fluent

从一个对象到同一实体类型的两个对象的多个关联

我试图首先使用代码和流畅的API来创建一个对象,该对象包含来自同一个表的两个不同的实体.换句话说,转移对象持有对两个不同坦克对象的引用 - 一个是源,另一个是目的地.

但是,当我使用下面的代码时,我得到一个Exception,声明"引用关系将导致不允许的循环引用".

modelBuilder.Entity<Transfer>()
            .HasRequired<Tank>(t => t.Source)
            .WithMany(t => t.OutboundTransfers);
modelBuilder.Entity<Transfer>()
            .HasRequired<Tank>(t => t.Destination)
            .WithMany(t => t.InboundTransfers);
Run Code Online (Sandbox Code Playgroud)

我最好的猜测是,它认为我将两把钥匙指向同一辆坦克?知道我怎么能做到这一点?

编辑:从实体框架代码优先添加.WillCascadeOnDelete(false)找到答案- 来自同一个表的两个外键

.net c# fluent ef-code-first entity-framework-4.1

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

流利的NHibernate - 如何映射List <enum>?

我有一个类,里面有一个字符串和一个枚举器列表.

public enum SomeEnum
{
    Undefined=0,
    Enum1,
    Enum2,
    Enum3,
    End
}
public class SomeObject
{
    public virtual int ID{get; set;}
    public virtual String Name {get; set;}
    public virtual IList<SomeEnum> EnumList {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

现在,应该有一个SomeObjects列表,包含ID和Name.应该有另一张这样的地图:

5 2
5 3
3 1
9 3
Run Code Online (Sandbox Code Playgroud)

意思是,ID为5的玩家有Enum2和Enum3,另一个ID为3的玩家有Enum1,而ID为9的玩家有Enum3.他们说可以映射int,float等,但我不想在列表中创建IList.

有一种简单的方法可以让流利的nhibernate这样做吗?

HasMany(x => x.EnumList )
    .Cascade.All()
    .Table("ObjectEnumTable");
Run Code Online (Sandbox Code Playgroud)

此映射文件抛出异常并说"关联引用未映射的类:SomeEnum".

提前致谢.

.net nhibernate fluent

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

Laravel Fluent在不同的地方添加select()?

//Earlier in the code, in each Model:
query = ModelName::select('table_name.*')

//Later in the code in a function in a Trait class that is always called

    if ($column == 'group_by')
    {
        $thing_query->groupBy($value);
        $thing_query->select(DB::raw('COUNT('.$value.') as count'));
    }
Run Code Online (Sandbox Code Playgroud)

有没有办法在eloquent查询生成器中追加或包含单独的select函数?

实际的 - > select()先前设置,然后调用此函数.我想在后面的函数中有条件地添加count列,该函数将查询传递给它.

mysql select fluent laravel eloquent

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

了解如何创建流畅的界面

嗨,我正在努力了解如何构建一个可读的,也可以防止Fluent-API出错,而不会对用户造成太大限制

保持简单让我们说我们想要改变下面的课程,以便流利

public class Car
{
    public int Gallons { get; private set; }
    public int Tons { get; private set; }
    public int Bhp { get; private set; }
    public string Make { get; private set; }
    public string Model { get; private set; }

    public Car(string make, string model)
    {
        Make = make;
        Model = model;
    }

    public void WithHorsePower(int bhp)
    {
        Bhp = bhp;
        return this;
    }

    public void WithFuel(int gallons)
    {
        Gallons = gallons;
    }

    public …
Run Code Online (Sandbox Code Playgroud)

c# fluent-interface fluent

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

如何设计流畅的异步操作?

异步操作似乎不适合我喜欢编写的流畅接口.Asynchrony如何与Fluent结合使用?


示例:我有两个先前返回的方法,MyEntity但在更改为Async时效果不佳.在我异步他们之后,我必须await完成任务的结果,但我必须为每个添加的步骤执行此操作:

MyEntity Xx = await(await FirstStepAsync()).SecondStepAsync();
Run Code Online (Sandbox Code Playgroud)

一定有更好的方法.

.net c# fluent async-await

10
推荐指数
4
解决办法
3209
查看次数

Laravel 4:将where子句添加到连接条件

它在laravel文档中说可以在连接上添加where子句,但每当我使用where子句尝试使用我的代码时,我都会收到错误:Call to undefined method Illuminate\Database\Query\JoinClause::where().任何人都知道如何在join子句中添加where子句?

Laravel网站示例:

DB::table('users')
->join('contacts', function($join)
{
  $join->on('users.id', '=', 'contacts.user_id')
  ->where('contacts.user_id', '>', 5);
})
->get();
Run Code Online (Sandbox Code Playgroud)

代码我正在尝试实现:

DB::table('users')
->join('contacts', function($join)
{
  $current_date = date('Y-m-d');
  $join->on('users.id', '=', 'contacts.user_id')
  ->where('contacts.effective_date', '>=', $current_date);
})
->get();
Run Code Online (Sandbox Code Playgroud)

php database fluent laravel laravel-4

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

处置来自同一对象的对象

我正在设计一个流畅的API,其用法有点像这样:

IUser user = work
                 .Timeout(TimeSpan.FromSeconds(5))
                 .WithRepository(c => c.Users)
                 .Do(r => r.LoadByUsername("matt"))
                 .Execute();
Run Code Online (Sandbox Code Playgroud)

所以,让我们说work是类型IUnitOfWork,但该方法WithRepository(c => c.Users)返回称为界面IActionFlow<IUserRepository>IDisposable.

当我调用Execute()并获得最终结果时,我失去了对该IActionFlow<IUserRepository>实例的引用,因此我无法处理它.

将实例自身放在Execute()方法上有什么缺点?

就像是:

public TResult Execute()
{
    // ...
    Dispose();
    return result;
}
Run Code Online (Sandbox Code Playgroud)

代码似乎编译得很好,但我正在寻找可能因此而出现的奇怪行为或错误.这是不好的做法吗?

c# dispose fluent

9
推荐指数
1
解决办法
369
查看次数

使用Apache HttpClient的Facade时,是否可以同时获取状态代码和正文内容?

在Java中使用Apache的HttpClient Fluent Facade中的一些示例代码供开发人员扩展.他们真的很喜欢流利的外观,能够打电话:

this.body = Request.Get(uri.build()).execute().returnContent().asString();
Run Code Online (Sandbox Code Playgroud)

另外,我可以通过调用获取状态代码:

this.statusCode = Request.Get(uri.build()).execute().returnResponse().getStatusLine().getStatusCode();
Run Code Online (Sandbox Code Playgroud)

不幸的是,有几个实例我需要除了正文之外的状态代码.根据这个问题,我看到我可以让他们学习HttpClient对象 -

HttpResponse response = client.execute(httpGet);
String body = handler.handleResponse(response);
int code = response.getStatusLine().getStatusCode();
Run Code Online (Sandbox Code Playgroud)

但是,这意味着初始化HttpClient对象并且似乎拒绝了Fluent接口和Request.Get(或Post)语法.有没有办法同时获取状态代码和正文而不会丢失Fluent语法并且不进行两次离散调用?

java fluent apache-httpclient-4.x

8
推荐指数
1
解决办法
2966
查看次数

具有多个父属性的EF6自引用表,单个子集合

我有一个引用自己的表,但我正在努力获得我想要的映射.我希望能够将儿童定义为拥有母亲,父亲和/或监护人的特定人的集合.守护者可能是父亲或母亲.

我希望能够看到人们被列入名单的人们可以浏览的树状图; 用户可以扩展一个人的节点以显示该人的所有孩子,而不管儿童定义的关系(母亲,父亲或监护人).

public partial class Person
{
    [Key]
    public int ID { get; set; }

    [StringLength(100)]
    public string Name { get; set; }


    public int? GuardianID { get; set; }

    [Column("MotherID")]
    public int? MotherID { get; set; }


    [Column("FatherID")]
    public int? FatherID { get; set; }

    [ForeignKey("MotherID")]
    public virtual tblPerson Mother { get; set; }

    [ForeignKey("FatherID")]
    public virtual tblPerson Father { get; set; }

    [ForeignKey("GuardianID")]
    public virtual tblPerson Guardian { get; set; }

    [InverseProperty("Guardian")]
    [InverseProperty("Father")]
    [InverseProperty("Mother")]
    public virtual IEnumerable<tblPerson> …
Run Code Online (Sandbox Code Playgroud)

entity-framework fluent data-annotations self-referencing-table

8
推荐指数
1
解决办法
683
查看次数

在Fluent + Vapor中查询子项

我对如何查询模型对象的子项并立即使用它感到困惑.我ClientStation儿子很多

final class Client: PostgreSQLModel {
    var stations: Children<Client, Station> {
        return children(\.clientID)
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在我的控制器中,我有一个客户列表,我想看看并抓住他们的电台.

func clientIndexHandler(_ req: Request) throws -> Future<View> {
    return Client.query(on: req).all().flatMap(to: View.self) { clients in
        let sorted = clients.sorted { ... }
        let content = try sorted.map { client in
            let stations = try client.stations
                                       .query(on: req)
                                       .all()
                                       .map(to: [String].self) { stations in
                return stations.map { $0.name }
            }

            // Now I want to use the stations for other stuff. …
Run Code Online (Sandbox Code Playgroud)

fluent vapor

8
推荐指数
1
解决办法
422
查看次数