C# 我应该对输入进行编码吗?

C# 我应该对输入进行编码吗?,c#,asp.net,nhibernate,html-encode,C#,Asp.net,Nhibernate,Html Encode,我使用NHibernate来保存我的对象。。然而,我似乎找不到任何关于是否需要对输入进行编码的信息 例如: string firstName = TextboxFirstName.Text; string lastName = TextboxLastName.Text; using(ISession session = sessionFactory.OpenSession()) { Customer customer = new Customer(firstName, lastName

我使用NHibernate来保存我的对象。。然而,我似乎找不到任何关于是否需要对输入进行编码的信息

例如:

string firstName = TextboxFirstName.Text;
string lastName = TextboxLastName.Text;

using(ISession session = sessionFactory.OpenSession())
{
    Customer customer = new Customer(firstName, lastName);
    session.SaveOrUpdate(customer);         
}

我需要编码
firstName
lastName
(特别是单个qoutes),还是NHibernate为我做这件事?

Hibernate将为您处理所有这些。在这种情况下,属性只需要是字符串

Hibernate将为您解决所有这些问题。在这种情况下,属性只需要是字符串

A
Customer
实例只是域模型中的一个对象。仅此而已。NHibernate只是在幕后——它是一个窗口,您可以通过它访问域模型

NHibernate确保域模型被正确持久化。它可以做到这一点,而不需要做很多事情,比如对对象上的字符串属性进行编码


此外,如果您正在创建一个新的
Customer
实例,并且希望通知NHibernate新实例,那么您应该使用API方法
ISession.Save
,而不是
ISession.SaveOrUpdate
。API方法ISession.Save将把新实例保存到域模型中(并透明地保存到数据库中)。

A
Customer
实例只是域模型中的一个对象。仅此而已。NHibernate只是在幕后——它是一个窗口,您可以通过它访问域模型

NHibernate确保域模型被正确持久化。它可以做到这一点,而不需要做很多事情,比如对对象上的字符串属性进行编码


此外,如果您正在创建一个新的
Customer
实例,并且希望通知NHibernate新实例,那么您应该使用API方法
ISession.Save
,而不是
ISession.SaveOrUpdate
。API方法ISession.Save将把新实例保存到域模型中(并且透明地保存到数据库中)。

SaveOrUpdate应该可以正常工作。我猜客户有一个自动分配的Id映射为。在这种情况下,NHibernate将能够自行判断这是否是新客户。Daniel Schilling-你是对的,虽然我使用了,但仍然应该应用相同的推理。SaveOrUpdate应该可以正常工作。我猜客户有一个自动分配的Id映射为。在这种情况下,NHibernate将能够自行判断这是否是新客户。丹尼尔·席林-你是对的,尽管我使用了,但同样的推理应该适用。