我正在尝试使用流畅的会话每个请求.我正在遵循nhibernate cookbook的"配方",但是它使用了nhibernate配置文件.
我不确定什么是更好但是现在我坚持使用流畅的配置只是因为我不知道如何设置nhibernate配置文件以使用流畅的映射和vanilla nhibernate映射(hbm文件).
namespace Demo.WebUI
{
public class MvcApplication : NinjectHttpApplication
{
public static ISessionFactory SessionFactory { get; private set; }
protected override void OnApplicationStarted()
{
SessionFactory = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008.ConnectionString(
c => c.FromConnectionStringWithKey("test")))
.Mappings(m => m.FluentMappings
.AddFromAssemblyOf
<Demo.Framework.Data.NhibernateMapping.UserMap>())
.ExposeConfiguration(BuidSchema)
.BuildSessionFactory();
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
var session = SessionFactory.OpenSession();
//CurrentSessionContext.Bind(session);
}
protected void Application_EndRequest(object sender, EventArgs e)
{
//var session = CurrentSessionContext.Unbind(SessionFactory);
SessionFactory.Dispose();
}
}
}
Run Code Online (Sandbox Code Playgroud)
正如您在Begin_Request中可以看到的书籍教程
CurrentSessionContext.Bind(session);
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用它,它会抛出一个错误,因为我没有使用nhibernate配置文件.
那么如何更改它以使用流畅的配置?或者我甚至不需要这样做?(即它是在内部完成的吗?)
我有一些相对布局,有些ImageView有时会超出布局的边界.当发生这种情况时,ImageViews会调整大小,使它们变小,而不是超出范围.我希望它们正常显示并且只是被裁剪.
我认为有一些布尔值可以做到这一点,但我无法在API中找到它.我认为它可能是ViewGroups下的clipChildren,但将其设置为false或true似乎什么都不做.任何帮助表示赞赏.
我正在开始一个新项目,并希望从一开始就获得我的表名和列名.例如,我总是在表名中使用复数,但最近学到的单数是正确的.
那么,如果我得到一个表"用户"然后我得到的产品只有用户会有,那么这个表应该命名为"user_product"还是只是"product"?这是一对多的关系.
进一步说,如果我(由于某种原因)每个产品的几个产品描述,它会是"user_product_description"或"product_description"还是只是"描述"?当然有正确的外键设置..命名它只描述会有问题,因为我也可以有用户说明或帐户描述或其他..
如果我想要一个只有两列的纯关系表(多对多),那会是什么样子呢?"user_stuff"或者类似"rel_user_stuff"的内容?如果是第一个,可以区分它,例如"user_product"?
任何帮助都非常感谢,如果有你们推荐的某种命名约定标准,请随时链接.
谢谢
database database-design coding-style naming-conventions relational-database
我使用Code :: Blocks在C++中创建了一个简单的程序.
如果我从Code :: Blocks运行它,它可以正常工作; 但如果我通过双击可执行文件来运行它,会弹出一个窗口,显示以下消息:
程序无法启动,因为您的计算机缺少libgcc_s_dw2-1.dll.
尝试重新安装该程序以解决此问题.
那么,问题是什么?我该怎么做才能修复它?
考虑开始日期和结束日期:
NSDate *startDate, *endDate;
Run Code Online (Sandbox Code Playgroud)
例如,startDate可能是2010年12月10日,endDate可能是2011年1月4日.
考虑从2010年12月10日到2011年1月4日的天数.
我如何确定相同天数但恰好在1年前的日期范围.我希望它能够考虑到闰年.所以我不能简单地从每个日期减去365天.
我想最终得到:
NSDate *oneYearAgoStartDate, *oneYearAgoEndDate.
Run Code Online (Sandbox Code Playgroud)
所以也许在这种情况下,oneYearAgoStartDate将是2009年12月10日,oneYearAgoEndDate将是2010年1月4日(注意我还没有证实这一点).
我怎么能初始化这两个变量来实现我的需要.
我一直想知道为什么以下简单的代码在从main()返回时会产生分段错误:
//Produces "Error while dumping state (probably corrupted stack); Segmentation fault"
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
class Test
{
vector<int> numbers;
};
int main()
{
Test a;
ifstream infile;
cout << "Last statement..." << endl; // this gets executed
return 0;
}
Run Code Online (Sandbox Code Playgroud)
有趣的是,1)如果只声明了两个变量中的一个,我没有得到错误,2)如果我声明一个向量变量而不是带有向量成员的对象,一切都很好,3)如果我声明一个ofstream而不是再一次,ifstream,一切正常.这个特定的组合似乎有些不对劲......
这可能是编译器错误吗?我使用gcc版本3.4.4与cygwin.
提前感谢您的提示.
GABOR
我想将二维搜索空间中的某个点移动到具有一些步长的另一个点b(_config.StepSize = 0.03).
Point a = agent.Location;
Point b = agentToMoveToward.Location;
//--- important
double diff = (b.X - a.X) + (b.Y - a.Y);
double euclideanNorm = Math.Sqrt(Math.Pow((b.X - a.X), 2) + Math.Pow((b.Y - a.Y), 2));
double offset = _config.StepSize * ( diff / euclideanNorm );
agent.NextLocation = new Point(a.X + offset, a.Y + offset);
//---
Run Code Online (Sandbox Code Playgroud)
这是对的吗?