Skip to content

Instantly share code, notes, and snippets.

@kskalski
kskalski / Address.vue
Created November 19, 2021 01:28
Vue 3 + class decorators setup
<template>
<div>
<span v-for='block, idx in blocks' v-bind:key='idx'>
<span>{{ block }}</span><span v-if='idx < blocks.length - 1'>, </span>
</span>
</div>
</template>
<script lang="ts">
import { Vue, Options, Prop } from 'vue-decorator';
@kskalski
kskalski / Program.cs
Created May 1, 2019 18:49
Proto+EF model
using (var db = new Database()) {
db.Fruits.Add(new Models.Fruit { Name = "Apple", Weight = 345.2 });
var tree = new Models.Tree { Height = 45 };
tree.Fruits.Add(new Models.Fruit { Name = "Banana", Weight = 25.1 });
db.Trees.Add(tree);
var count = db.SaveChanges();
Console.WriteLine("{0} records saved to database", count);
}
using (var db = new Database()) {
@kskalski
kskalski / Database.cs
Created May 1, 2019 17:16
Proto+EF model
class Database : DbContext {
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) {
optionsBuilder.UseSqlite("Data Source=garden.db");
}
public DbSet<Models.Fruit> Fruits { get; set; }
public DbSet<Models.Tree> Trees { get; set; }
}
<ItemGroup>
<PackageReference Include="Google.Protobuf" Version="3.7.0" />
<PackageReference Include="Grpc.Tools" Version="1.20.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.0.0-preview4.19216.3">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.0.0-preview4.19216.3" />
</ItemGroup>
@kskalski
kskalski / models.proto
Created May 1, 2019 12:15
Proto+EF model
syntax = "proto3";
package Models;
message Fruit {
int64 Id = 1;
string Name = 2;
double Weight = 3;
}
message Tree {