如果不存在,EF7 sqlite create table

时间:2017-01-01 03:47:44

标签: c# sqlite entity-framework-core

使用带有sqlite的c#实体框架7,如何查看表是否存在以及是否创建表?也许基于上下文中的dbset?没有现有数据库的迁移或任何东西。应用程序只是创建数据库,而不是那里,我也想创建表。

;;;==============================================================
;;;                Sistema Experto de Triaje
;;;
;;;                 CLIPS Version 6.3 Example
;;;==============================================================

;;*************************
;;*DEFINICION DE FUNCIONES*
;;*************************

(deffunction preguntas (?pregunta $?valor)
   (printout t ?pregunta)
   (bind ?respuesta (read))
   (if (lexemep ?respuesta) 
       then (bind ?respuesta (lowcase ?respuesta)))
   (while (not (member ?respuesta ?valor)) do
      (printout t ?pregunta)
      (bind ?respuesta (read))
      (if (lexemep ?respuesta) 
          then (bind ?respuesta (lowcase ?respuesta))))
   ?respuesta)

(deffunction si-o-no-p (?pregunta)
   (bind ?responde (preguntas ?pregunta si no s n))
   (if (or (eq ?responde si) (eq ?responde s))
       then si 
       else no))


;;;********************
;;;*REGLAS DE CONSULTA*
;;;********************

(defrule determina-emergencia ""
	(not (usuario-emergencia ?))
	(not (color ?))
	=>
	(assert (usuario-emergencia (si-o-no-p "¿Posee el paciente emergencia alguna? (Si/No)"))))

(defrule determina-signos ""
	(usuario-emergencia si)
	(not (usuario-vivo ?))
	(not (color ?))
	=>
	(assert (usuario-vivo (si-o-no-p "¿Posee el paciente signos vitales? (Si/No)"))))

(defrule determina-sangre ""
	(usuario-vivo si)
	(not (color ?))
	=>
	(assert (usuario-sangre (si-o-no-p "¿Tiene el paciente insiciones o hemorragias? (Si/No)"))))

(defrule determina-combulsion ""
	(usuario-vivo si)
	(usuario-sangre no)
	(not (color ?))
	=>
	(assert (usuario-combulsion (si-o-no-p "¿Tiene el paciente estado de combulsion alguno? (Si/No)"))))


(defrule determina-conciencia ""
	(usuario-vivo si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(not (color ?))
	=>
	(assert (usuario-conciente (si-o-no-p "¿Esta el paciente en estado conciente?  (Si/No)"))))

(defrule determina-quemadura ""
	(usuario-vivo si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(not (color ?))
	=>
	(assert (usuario-quemadura (si-o-no-p "¿Tiene el paciente quemaduras? (Si/No)"))))


(defrule determina-dolor ""
	(usuario-conciencia si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(not (color ?))
	=>
	(assert (usuario-dolor (si-o-no-p "¿Posee el paciente dolor alguno? (Si/No)"))))

(defrule determina-toxico ""
	(usuario-vivo si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor no)
	(not (color ?))
	=>
	(assert (usuario-toxico (si-o-no-p "¿Ha ingerido el paciente alguna sustancia toxica? (Si/No)"))))

(defrule determina-vomito ""
	(usuario-vivo si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor no)
	(usuario-toxico no)
	(not (color ?))
	=>
	(assert (usuario-vomito (si-o-no-p "¿Posee el paciente vomitos severos y persistentes? (Si/No)"))))

(defrule determina-respiracion ""
	(usuario-vivo si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor no)
	(usuario-toxico no)
	(usuario-vomito no)
	(not (color ?))
	=>
	(assert (usuario-respiracion (si-o-no-p "¿Tiene el paciente dificultad al respirar en estado de reposo?(Si/No)"))))

(defrule determina-enfermedad ""
	(usuario-vivo si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor no)
	(usuario-toxico no)
	(usuario-vomito no)
	(usuario-respiracion no)
	(not (color ?))
	=>
	(assert (usuario-enfermedad (si-o-no-p "¿Considera que el paciente esta enfermo? (Si/No)"))))

;;============
;;=Emorragias=
;;============

(defrule determina-tipo-sangre ""

	(usuario-sangre si)
	(not (color ?))
	=>
	(assert (usuario-tipo-sangre (preguntas "¿Puede definir el tipo de hemorragia? Externa(Heridas)/Exteriorizada(sangre que sale por los orificios del cuerpo)" externa exteriorizada))))

(defrule determina-zona-sangre ""

	(usuario-sangre si)
	(usuario-sangre-tipo exteriorizada)
	(not (color ?))
	=>
	(assert (usuario-zona-sangre (preguntas "¿Puede expecificar por donde emerge la hemorragia? Boca/Nariz/Recto/Vagina/uretra/Oido/Ojo" boca nariz recto vagina uretra oido ojo))))

(defrule determina-boca-sangre ""

	(usuario-sangre si)
	(usuario-sangre-tipo exteriorizada)
	(usuario-zona-sangre boca)
	(not (color ?))
	=>
	(assert (usuario-boca-sangre (preguntas "¿De que manera expulsa sangre por la boca? Tosiendo/Vomitando" tosiendo vomitando))))


(defrule determina-sangre-externa ""

	(usuario-sangre si)
	(usuario-sangre-tipo externa)
	(not (color ?))
	=>
	(assert (usuario-sangre-externa (preguntas "¿De que manera se ha producido la herida? Vehicular/Caida/Agresion" vehicular caida agresion))))

;;============
;;=Combulsion=
;;============

(defrule determina-tiempo-combulsion ""
	(usuario-vivo si)
	(usuario-combulsion si)
	(not (color ?))
	=>
	(assert (usuario-tiempo-combulsion (preguntas "¿Hace cuanto fue la ultima combulsion? Recientemente/1h/4h/8h/Ayer" recientemente 1h 4h 8h ayer))))

;;============
;;=Quemaduras=
;;============

(defrule determina-tipo-quemadura ""
	(usuario-vivo si)
	(usuario-quemadura si)
	(not (color ?))
	=>
	(assert (usuario-tipo-quemadura (preguntas "¿Puede definir el grado de la quemadura? Primera/Segunda/Tercera" primera segundo tercera))))

;;=======
;;=Dolor=
;;=======

(defrule determina-tipo-dolor ""
	(usuario-vivo si)
	(usuario-conciencia si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor si)
	(not (color ?))
	=>
	(assert (usuario-tipo-dolor (preguntas "¿Que tipo de dolor padece? Muscular/Oseo/Cefalico/Visceral" muscular oseo cefalico visceral))))

;;========
;;=DolorM=
;;========

(defrule determina-sintoma-dolor-m ""
	(usuario-vivo si)
	(usuario-conciencia si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor si)
	(usuario-tipo-dolor muscular)
	(not (color ?))
	=>
	(assert (usuario-sintoma-M (preguntas "¿Posee sintomas como Hinchazon/Enrojecimiento/Erupcion/Entumecimiento?" hinchazon enrojecimiento erupcion entumecimiento))))

(defrule determina-esguince ""
	(usuario-vivo si)
	(usuario-conciencia si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor si)
	(usuario-tipo-dolor muscular)
	(usuario-sintoma enrojecimiento)
	(usuario-sintoma entumecimiento)
	(not (color ?))
	=>
	(assert (usuario-esguince (si-o-no-p "¿Considera usted que posee un esguince ?(Si/No)"))))

;;========
;;=DolorO=
;;========

(defrule determina-cancer ""
	(usuario-vivo si)
	(usuario-conciencia si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor si)
	(usuario-tipo-dolor oseo)
	(not (color ?))
	=>
	(assert (usuario-cancer (si-o-no-p "¿Tiene usted cancer en los huesos o posee antecedentes familiares?(Si/No)"))))

(defrule determina-columna ""
	(usuario-vivo si)
	(usuario-conciencia si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor si)
	(usuario-tipo-dolor oseo)
	(not (color ?))
	=>
	(assert (usuario-columna (si-o-no-p "¿Su dolor radica en la columna?(Si/No)"))))


(defrule determina-sintoma-dolor-o ""
	(usuario-vivo si)
	(usuario-conciencia si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor si)
	(usuario-tipo-dolor oseo)
	(usuario-cancer no)
	(usuario-columna si)
	(usuario-columna no)
	(not (color ?))
	=>
	(assert (usuario-sintoma-o (preguntas "¿cual considera que es su caso Fractura/Gangrena(falta de sangre)/Infeccion/Dislocacion?" fractura gangrena infeccion dislocacion))))

(defrule determina-zona-fractura ""
	(usuario-vivo si)
	(usuario-conciencia si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor si)
	(usuario-tipo-dolor oseo)
	(usuario-cancer no)
	(usuario-columna no)
	
	(not (color ?))
	=>
	(assert (usuario-zona-fractura (preguntas "¿En que region se encuentra la fractura? Brazos/Piernas/Torso/Espalda/Cabeza" brazos piernas torso espalda cabeza ))))

(defrule determina-fractura ""
	(usuario-vivo si)
	(usuario-conciencia si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor si)
	(usuario-tipo-dolor oseo)
	(usuario-sintoma-o fractura)
	(usuario-zona-fractura brazo)
	(usuario-zona-fractura piernas)
	(not (color ?))
	=>
	(assert (usuario-fractura (si-o-no-p "¿El hueso emerge del cuerpo?(Si/No)"))))

;;==========
;;=Visceral=
;;==========

(defrule determina-sintoma-dolor-v ""
	(usuario-vivo si)
	(usuario-conciencia si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor si)
	(usuario-tipo-dolor visceral)
	(not (color ?))
	=>
	(assert (usuario-sintoma-dolor-v (preguntas "¿En que region posee el dolor Toracica/Abdominal/Genital?" Toracica Abdominal Genital))))

(defrule determina-dolor-abdomen ""
	(usuario-vivo si)
	(usuario-conciencia si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor si)
	(usuario-tipo-dolor visceral)
	(usuario-sintoma-dolor-v abdominal)
	(not (color ?))
	=>
	(assert (usuario-abdomen (preguntas "¿En que region se intencifica el dolor Superior/Inferior/Derecha/Izquierda?" superior inferior derecha izquierda ))))

(defrule determina-organo ""
	(usuario-vivo si)
	(usuario-conciencia si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor si)
	(usuario-tipo-dolor visceral)
	(usuario-sintoma-dolor-v toracica)
	(not (color ?))
	=>
	(assert (usuario-organo (preguntas "¿Considera que su dolor se relaciona con los pulmones o con el corazon?"  corazon pulmones ))))

(defrule determina-dificultad ""
	(usuario-vivo si)
	(usuario-conciencia si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor si)
	(usuario-tipo-dolor visceral)
	(usuario-sintoma-o fractura)
	(usuario-sintoma-dolor-v toracica)
	(not (color ?))
	=>
	(assert (usuario-dificultad (si-o-no-p "¿Tiene dificultad al respirar?(Si/No)"))))

(defrule determina-caida ""
	(usuario-vivo si)
	(usuario-conciencia si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor si)
	(usuario-tipo-dolor visceral)
	(usuario-sintoma-o fractura)
	(usuario-sintoma-dolor-v toracica)
	(usuario-respiracion si)
	(usuario-respiracion no)
	(not (color ?))
	=>
	(assert (usuario-caida (si-o-no-p "¿Ha sufrido caidas o recibido golpes recientes?(Si/No)"))))
;;;=========
;;;=Genital=
;;;=========

(defrule determina-genital ""
	(usuario-vivo si)
	(usuario-conciencia si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor si)
	(usuario-tipo-dolor genital)
	(not (color ?))
	=>
	(assert (usuario-genital (si-o-no-p "¿Considera usted que se trata de una infeccion presenta irritacion erupcion o sintomas similares?(Si/No)"))))


(defrule determina-orina ""
	(usuario-vivo si)
	(usuario-conciencia si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor si)
	(usuario-tipo-dolor genital)
	
	(not (color ?))
	=>
	(assert (usuario-orina (si-o-no-p "¿Ha orinado sangre?(Si/No)"))))


(defrule determina-gestacion ""
	(usuario-vivo si)
	(usuario-conciencia si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor si)
	(usuario-tipo-dolor genital)
	(not (color ?))
	=>
	(assert (usuario-gestacion (si-o-no-p "¿Se encuentra usted en estado de gestacion (Embarazo)?(Si/No)"))))

;;==========
;;=Cefalico=
;;==========

(defrule determina-sintoma-dolor-c ""
	(usuario-vivo si)
	(usuario-conciencia si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor si)
	(usuario-tipo-dolor cefalico)
	(not (color ?))
	=>
	(assert (usuario-region-dolor-c (preguntas "¿En que region se intencifica el dolor Frente/Cuello/Nariz/Cerebro?" frente cuello nariz cerebro))))

(defrule determina-mucosa ""
	(usuario-vivo si)
	(usuario-conciencia si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor si)
	(usuario-tipo-dolor cefalico)
	(usuario-region-dolor-c frente)
	(usuario-region-dolor-c nariz)
	(not (color ?))
	=>
	(assert (usuario-mucosa (si-o-no-p "¿Posee dificultad para respirar u ojos rojizos o llorosos?(Si/No)"))))

(defrule determina-migraña ""
	(usuario-vivo si)
	(usuario-conciencia si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor si)
	(usuario-tipo-dolor cefalico)
	(usuario-region-dolor-c cerebro)

	(not (color ?))
	=>
	(assert (usuario-migraña (si-o-no-p "¿Considera usted que el dolor interfiere con sus actividades diarias ?(Si/No)"))))

(defrule determina-vision ""
	(usuario-vivo si)
	(usuario-conciencia si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor si)
	(usuario-tipo-dolor cefalico)
	(usuario-region-dolor-c cerebro)
	(usuario-migraña si)
	(not (color ?))
	=>
	(assert (usuario-vision(si-o-no-p "¿Presenta sintomas como perdida de vision problemas al habla o mala articulacion?(Si/No)"))))

(defrule determina-cuello-debil ""
	(usuario-vivo si)
	(usuario-conciencia si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor si)
	(usuario-tipo-dolor cefalico)
	(usuario-region-dolor-c cuello)
	(not (color ?))
	=>
	(assert (usuario-cuello-debil (si-o-no-p "¿Siente debilidad en los brazos u hombros ?(Si/No)"))))

(defrule determina-rotacion ""
	(usuario-vivo si)
	(usuario-conciencia si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor si)
	(usuario-tipo-dolor cefalico)
	(usuario-region-dolor-c cuello)
	(usuario-cuello-debil no)
	(not (color ?))
	=>
	(assert (usuario-rotacion (si-o-no-p "¿Puede rotar el cuello con facilidad?(Si/No)"))))

(defrule determina-cuello ""
	(usuario-vivo si)
	(usuario-conciencia si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-dolor si)
	(usuario-tipo-dolor cefalico)
	(usuario-region-dolor-c cuello)
	(usuario-cuello-debil no)
	(usuario-rotacion no)
	(not (color ?))
	=>
	(assert (usuario-cuello (si-o-no-p "¿Esta su dolor asociado con la garganta?(Si/No)"))))


(defrule determina-cuello-sintoma ""
	(usuario-cuello si)
	(usuario-vivo si)
	(usuario-conciencia si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(not (color ?))
	=>
	(assert (usuario-cuello-sintoma (si-o-no-p "¿Presenta sintomas como falta del habla o dificultad al tragar?(Si/No)"))))

(defrule determina-cuello-columna ""
	(usuario-cuello-debil si)
	(usuario-conciencia si)
	(usuario-sangre no)
	(usuario-combulsion no)
	(usuario-conciente si)
	(usuario-quemadura no)
	(usuario-rotacion si)
	(not (color ?))
	=>
	(assert (usuario-cuello-columna (si-o-no-p "¿Relaciona usted el dolor con la columna?(Si/No)"))))

;;=========
;;=Toxicos=
;;=========

(defrule determina-tipo-toxico ""
	(usuario-toxico si)
	(not (color ?))
	=>
	(assert (usuario-tipo-toxico (si-o-no-p "¿Ha ingerido elementos como Gasolina Cloro o Detergentes?(Si/No)"))))

(defrule determina-toxico-daños ""
	(usuario-toxico si)
	(usuario-tipo-toxico no)
	(not (color ?))
	=>
	(assert (usuario-daños (si-o-no-p "¿Presenta perdida de vision/Dolor de garganta/Ardor en los ojos, nariz o labios?(Si/No)"))))

(defrule determina-sangre-heces ""
	(usuario-toxico si)
	(usuario-daños no)
	(not (color ?))
	=>
	(assert (usuario-haces (si-o-no-p "¿Presenta sangre en las heces?(Si/No)"))))

(defrule determina-toxico-vomitos ""
	(usuario-toxico si)
	(usuario-daños no)
	(usuario-haces no)
	(not (color ?))
	=>
	(assert (usuario-vomitos (si-o-no-p "¿Ha presentado vomitos?(Si/No)"))))

(defrule determina-toxico-inflamacion ""
	(usuario-toxico si)
	(usuario-daños no)
	(usuario-haces no)
	(usuario-vomitos no)
	(not (color ?))
	=>
	(assert (usuario-inflamacion (si-o-no-p "¿Posee dificultad respiratoria o inflamacion en la garganta?(Si/No)"))))

(defrule determina-huecos ""
	(usuario-toxico si)
	(usuario-daños no)
	(usuario-haces no)
	(usuario-vomitos no)
	(usuario-inflamacion)
	(not (color ?))
	=>
	(assert (usuario-huecos (si-o-no-p "¿Presenta irritacion u orificion en al piel?(Si/No)"))))

;;======
;;=Azul=
;;======

(defrule determina-actividad ""
	(usuario-emergencia no)
	(not (color ?))
	=>
	(assert (usuario-actividad (si-o-no-p "¿Viene a entregar documentos como resultados u otros? (Si/No)"))))



;;;**************
;;;*DIAGNOSTICOS*
;;;**************

(defrule estado-vivo ""
   (usuario-emergencia si)
   (usuario-vivo no)
   (not (color ?))
   =>
   (assert (color "Codigo Rojo")))


(defrule estado-inutil ""
   (usuario-emergencia no)
   (usuario-actividad no)
   (not (color ?))
   =>
   (assert (color "Por favor no moleste")))

(defrule no-color ""
  (declare (salience -20))
  (not (color ?))
  =>
  (assert (color "Lo lamento no estoy capacitado para ayudarlo")))


;;;************************
;;;*REGLAS DE CONCLUCIONES*
;;;************************

(defrule system-banner ""
  (declare (salience 20))
  =>
  (printout t crlf crlf)
  (printout t "Sistema Experto de Triaje")
  (printout t crlf crlf))

(defrule print-color ""
  (declare (salience 20))
  (color ?item)
  =>
  (printout t crlf crlf)
  (printout t "Su color es:")
  (printout t crlf crlf)
  (format t " %s%n%n%n" ?item))

1 个答案:

答案 0 :(得分:1)

如果您不使用迁移,可以在应用启动过程中使用此功能:

context.Database.EnsureCreated();

或迁移:

context.Database.Migrate();