这个示例是基于经典的微软官方北风数据库基础上实现的,北风的数据是一个网店管理和产品销售管理的案例。在这个案例中主要是演示了客户、订单以及缓存方式数据处理,还有VCard自定义输出格式。
此解决方案中包含有三个项目,
对外服务的主项目,发布时只用这个项目即可。
提供服务的项目,此处为类库形式。
模型类定义,其中包含有入口类出口类的定义,以及实体类,路由可定义在入口类出口类上。
示例中使用了轻量级的Sqlite数据库
在Global.asax文件的public class AppHost : AppHostBase 类中的 Configure函数中定义数据库连接:
container.Register<IDbConnectionFactory>( new OrmLiteConnectionFactory("~/Northwind.sqlite".MapHostAbsolutePath(), SqliteOrmLiteDialectProvider.Instance));
下面这句注册MemoryCahce 内存缓存,注意这个不是大名鼎鼎的memcahced,是SS内置的内存式缓存,
container.Register<ICacheClient>(new MemoryCacheClient());
如果已经安装了Redis,也可以使用Redis缓存:
container.Register<ICacheClient>(new PooledRedisClientManager());
下面这段并不是原示例中的,提供一些配置选项:
SetConfig(new EndpointHostConfig { DebugMode = true, // 用在开发过程中,显示服务器响应数据 WriteErrorsToResponse = false, //禁止写操作异常处理 DefaultContentType = ContentType.Json, //默认输出类型 AllowJsonpRequests = true //允许JsonP模式请求 });
注册VCard格式支持,是一种用于名片交换等的数据格式,
VCardFormat.Register(this);
VCard的详细转换和处理见ServiceStack.Northwind.ServiceInterface项目下的VCardFormat.cs ,自定义输出格式和结构可以参考这个文件的实现方法,自定义生成的数据也可以用来提供给用户下载。
时间: 2024-10-17 22:54:35