基本设置:
1)应用程序是React和Redux,
2)应用程序由面向前端的NGINX提供服务,提供静态文件,如html,图片,当然还有应用程序本身.它还将所有相关请求(Web套接字和/或AJAX)转发到后端(phoenix/elixir).
3)用户需要进行身份验证.我正在使用redux-oidc库,它只是客户端,它工作正常.
4)用户登录后,我对下一步该做什么感到朦胧.
问题(S):
1)我不能将状态与第一个请求一起发送,因为我不知道用户是谁,因此不知道要发送哪个状态.同时应用程序已启动(创建空存储,显示登录组件),
2)用户登录后我无法显示任何内容(如用户特定的导航栏,时间轴,邮箱),我必须让商店饱和并让其做出反应.我应该采取什么方法?
3)服务器渲染是因为a)我没有使用Node并且使用选择的框架渲染反应组件充其量是混乱和复杂的b)我将无法将应用程序导出到NGinx,因为它只提供静态资产和那里没有运行服务器逻辑.从理论上讲,我可以摆脱NGinx,在API服务器上进行基于服务器的登录,并发送HTML和JSON状态,可用于在客户端上呈现应用程序.然而,NGinx不仅提供静态资产,而且还负载平衡少数实例,因此,摆脱它不是我想要做的事情.
任何意见,将不胜感激.
如何将NHibernate类型映射到SQL Server的TIME类型?我正在使用NH 3.2和逐个代码.
public class Schedule
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual TimeSpan Time { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是我的映射类
public class ScheduleMapping : ClassMapping<Schedule>
{
public ScheduleMapping()
{
Id(x => x.Id, x => x.Generator(Generators.Native));
Property(x => x.Name, x => x.NotNullable(true));
Property(x => x.Time, x => x.NotNullable(true));
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当我从此列创建数据库时,"Time"具有BIGINT SQL类型而不是TIME.我已阅读这和这文章,但它不是我清楚如何应用这些解决方案.
===========编辑====================
我创建并插入了这样的新计划:
var newSchedule = new Schedule {
Name = "My Schedule", …Run Code Online (Sandbox Code Playgroud) 这是一个简单的类:
public class Person
{
public int Id {get; set;}
public string Name {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
当我在RavenDB中保存它时,会得到一些Id,但是它是1,然后是这个
var person = session.Load<Person>("Person/1")
Run Code Online (Sandbox Code Playgroud)
返回我指定的人但是这个
var person = session.Query<Person>().First(p => p.Id == 1)
Run Code Online (Sandbox Code Playgroud)
出错并说'序列不包含任何元素'.我不明白为什么.
我无法理解NHibernate如何知道从关联中删除的对象(然后执行像delete-orphant这样的级联样式).我的意思是,在数据库级别,如果我想删除一个关联,我必须实际登录并删除一些FK.在NH世界中这是怎么发生的?我是否重新映射我的课程,删除以前建立的父/子关联(关系),NH做比较分析,挖掘某些事情已经改变然后采取适当的行动?在这篇文章中, Ayende讨论了不同的级联风格和删除 - 或者描述为"... ...除此之外,当一个对象从被处理中移除而没有与另一个对象(孤儿)相关时,也删除它......"这种删除是如何发生的?
最近我在寻找社区领导者在其开源实现中提供的一些源代码.其中一个项目利用了IOC.以下是示例假设代码:
public class Class1
{
private ISomeInterface _someObject;
public Class1(ISomeInterface someObject)
{
_someObject = someObject;
}
// some more code and then
var someOtherObject = new SomeOtherObject();
}
Run Code Online (Sandbox Code Playgroud)
我的问题不是关于IOC是什么以及如何在技术术语中使用它们,而是关于对象创建的准则是什么.所有的努力,然后这一行使用"新"运算符.我不太明白.IOC应该创建哪个对象,哪个对象可以通过new运算符创建?