使用breeze-brideg-angular2时是否需要创建我的breeze实体类,否则如何在https://github.com/Breeze/breeze.bridge.angular2/blob/master/README.md
的建议解决方案中获得以下代码行?import { Customer } from './entities';
答案 0 :(得分:0)
该代码段假定您已为模型实体创建了类。这些课程并不是必需的,但它们确实很有帮助。
你可以手工制作它们并不难。
在许多情况下,您可以使用我认为在引用的TempHire示例中描述的工具从服务器端#C类生成它们(代码确实存在)。
更好的文档会有所帮助,我们同意。
答案 1 :(得分:0)
我最近在同样的问题上挣扎。我没有使用工作单元而是使用单个存储库 - dbContext,如John Papa的SPA Pluralsight示例中所示的1.x.数据项目中引用的模型项目编译为data.dll
试试这个:
(我用angular-cli生成的项目做了这个) 从temphire示例中获取整个tools文件夹并将其放入项目文件夹中。确保已按照metadatagenerator.exe文档中的建议完成了把手的npm安装。
复制package.json脚本:元数据行:entities:和metadata-entities:
您将需要这些,并且必须调整数据模型的路径和dll本身的名称。
"metadata": ".\\tools\\bin\\MetadataGenerator.exe..\\CFSWH.Web\\bin\\Debug\\CFSWH.Data.dll -o metadata.json",
"entities": "node ./tools/tsgen.js",
"metadata-entities": "npm run metadata && npm run entities"
您可能知道dbContext中有一些棘手的行。我的第一次失败是因为忘记了这一点并使用了我的SQL数据库中没有这些行的典型的逆向工程dbcontext:
public CFS_WHContext() : base(nameOrConnectionString: "CFS_WH") { }
static CFS_WHContext()
{
var type1 = typeof(System.Data.Entity.SqlServer.SqlProviderServices);
Database.SetInitializer<CFS_WHContext>(null);
}
在tools文件夹中,您需要调整tsgen.js文件
tsGen.generate({
inputFileName: './metadata.json',
outputFolder: './src/app/core/entities',
camelCase: true,
kebabCaseFileNames: true,
baseClassName: 'EntityBase'
});
反映实体的正确输出文件夹。您必须提前创建此文件夹。从temphire实体文件夹中复制entity-base.ts文件(或者将tsgen-core.js复制到不使用它。建议不要这样做,因为它具有我认为可能派上用场的实体状态的扩展属性)
确保您在package.json的脚本中拥有包含dll的bin文件夹的正确路径。
假设您已安装所有breeze文件安装temphire中显示的服务器和客户端,包括package.json中的这些依赖项
"breeze-bridge-angular2": "^0.3.6",
"breeze-client": "^1.6.0",
现在转到命令提示符并运行元数据实体。 (如果您一次只运行一个,则更容易调试)
如果有什么不清楚的话,很快就把这个放在一边很高兴。如果我以特别愚蠢或误导的方式做过或解释过某些事情,希望沃德或周杰伦会说话。
希望看到更多Breeze粉丝在这里分享ng2体验,直到Ward和Jay有时间记录更多内容。微风是值得的。