Asp.net 将对象保存并还原到数据库
假设我有一个具有以下格式的对象:Asp.net 将对象保存并还原到数据库,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,假设我有一个具有以下格式的对象: public class ObjectClassSample { public string product { set; get; } public string Description { set; get; } public int Price { set; get; } } 我试图在数据库中记录的字符串字段中使用相同的对象。有没有可能在不将其转换为JSON的情况下执行此操作,因为我
public class ObjectClassSample
{
public string product { set; get; }
public string Description { set; get; }
public int Price { set; get; }
}
我试图在数据库中记录的字符串字段中使用相同的对象。有没有可能在不将其转换为JSON的情况下执行此操作,因为我一直在思考保存和恢复此操作的最佳方式。通过某种方式,您必须将该对象转换为字符串,我不确定您为什么不想使用JSON,但要在不转换为JSON的情况下执行此操作,您可以使用自己的易出错格式 下面是一个将对象转换为字符串的示例,用逗号分隔每个属性 几种推广方法
public static class ObjectSampleExtensions
{
public static ObjectClassSample ToObjectClassSample(this string s)
{
var parts = s.Split(new [] { ','});
return new ObjectClassSample
{
product = parts[0],
Description = parts[1],
Price = int.Parse(parts[2])
};
}
public static string ConvertToString(this ObjectClassSample objectToConvertToString)
{
const string delimiter = ",";
var sb = new StringBuilder();
sb.Append(objectToConvertToString.product);
sb.Append(delimiter);
sb.Append(objectToConvertToString.Description);
sb.Append(delimiter);
sb.Append(objectToConvertToString.Price);
return sb.ToString();
}
}
然后使用
void Main()
{
var obj = new ObjectClassSample
{
Description = "this is the description",
Price = 3,
product = "my product"
};
var s = obj.ConvertToString();
//you can now save s to the database
Db.Save(s);
//later on pretend you read 's' back from the database
s = Db.ReadAnItem();
var objectFromDb = s.ToObjectClassSample();
}
所以,是的,您可以按照自己的意愿序列化数据,但我会使用一种通用格式:json、xml、csv等等
我不建议使用上面的代码,这只是一个示例,说明您基本上可以做任何您想将其转换为字符串的事情,只要您可以将其转换回。不过,使用json解析器会容易得多
带有ServiceStack.Text的示例如下所示
var objToSerialize = new ObjectClassSample(); //fill this with data
string myObjectAsString = objToSerialize.ToJson();
//reading it back from the database
ObjectClassSample myObj = myObjectAsString.FromJson<ObjectClassSample>();
var objToSerialize=new ObjectClassSample()//用数据填充这个
字符串myObjectAsString=objToSerialize.ToJson();
//从数据库中读回它
ObjectClassSample myObj=myObjectAsString.FromJson();
我相信newstonsoft.json与此类似
正如您所看到的……要漂亮得多。无论如何,您必须序列化您的类。如果不是JSON,那么是XML